存根函数的断言参数至少匹配列表中的 1 个值?
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, []);
});
有没有办法断言参数可以是列表中的任何值?
我知道这是下面的问题所在:
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, []);
});