断言参数与存根函数至少匹配一个列表中的值
Assert parameter to stubbed function matches at least 1 value from a list?
是否有一种方法可以断言参数可以是列表中的任何值?
我知道这是下面的问题行:
someParameter.should.equal('someValue1');
对于数组的第一次迭代,这行是正确的,但是对于第二次迭代,这行是错误的。
是否有一种方法可以断言如下:
someParameter.should.equal('someValue1').or.equal('someValue2');
生产代码…
function lookupServices(myValuesArray, callback) {
// var myValuesArray = ['someValue1', 'someValue2']; // sample input
var failures = [];
var valuesLookedUp = 0;
myValuesArray.forEach(function(value) {
someModule.someMethod(value, function(error) {
if (error) {
failures.push(value);
}
if (++valuesLookedUp === values.length) {
callback(failures);
}
});
});
}
测试代码,存根上面的方法..
sandbox.stub(someModule, 'someMethod', function(someParameter, callback) {
someParameter.should.equal('someValue1');
callback(null, []);
});
. . 结果
AssertionError: expected 'someValue2' to be 'someValue1'
+ expected - actual
-someValue2
+someValue1
如何:
sandbox.stub(someModule, 'someMethod', function(someParameter, callback) {
(someParameter in ['someValue1', 'someValue2']).should.equal(true);
callback(null, []);
});
或者更准确地说:
let callCount = 0;
let expectedValues = ['someValue1', 'someValue2'];
sandbox.stub(someModule, 'someMethod', function(someParameter, callback) {
someParameter.should.equal(expectedValues[callCount++]);
callback(null, []);
});
相关文章:
- 从javascript创建一个列表
- 使用jquery从列表项中移除类,并将一个类添加到另一个列表项中
- 为数组Jquery/Javascript创建一个列表函数
- JavaScript,如何从一个列表中获取选定的值,同时在另一个列表中进行更改
- 如何在选择另一个列表框值时清除列表框值
- Angular2从数组创建一个列表
- 为什么此脚本仅应用于此列表中的一个列表项
- Jquery幻灯片中的列表,连接第一个和最后一个列表元素以创建旋转木马
- 如何从有序列表中选择一个列表元素
- 雄辩的Javascript:练习:一个列表
- 将单元格的高度从一个表列表指定到另一个列表
- AngularJS图像在点击时应该显示一个列表
- 从 AJAX 在 JavaScript 中创建一个列表
- 如何使用列表框的一个值来设置另一个列表框的值
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- Jquery UI 可排序和可删除 - 无法将项目从一个列表克隆到另一个列表
- 使用 JQuery 将元素从一个列表移动到另一个列表
- 我有一个列表显示 1、2、3 个数字,我可以将它们转换为乌尔都语吗?
- 一个列表的Mailchimp多个订阅表单
- jQuery - 一个列表中的每个列表在另一个列表之前