有没有办法断言参数可以是列表中的任何值?
我知道这是下面的问题:
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
答案 0 :(得分:1)
怎么样:
utf-8
或更确切地说:
sandbox.stub(someModule, 'someMethod', function(someParameter, callback) {
(someParameter in ['someValue1', 'someValue2']).should.equal(true);
callback(null, []);
});