假设我们有一些执行此操作的代码:
callFunction(new Buffer(foo));
我们想用sinon.js间谍对该调用进行单元测试:
var spy = sinon.spy(callFunction);
expect(spy.to.have.been.calledWith(foo));
这将失败,因为callFunction
使用new Buffer(foo)
和调用了foo
。如果我们通过测试,则通过,expect(spy.to.have.been.calledWith(new Buffer(foo))
但是为每个测试继续创建新的缓冲区是否明智?有一个更好的方法吗?
那么(在CoffeeScript中)这样的事情怎么样:
bufferEqual = (expectation) ->
sinon.match.instanceOf(Buffer)
.and(sinon.match (val) -> val.toString() == expectation)
或JS版本:
function bufferEqual(expectation) {
return sinon.match.instanceOf(Buffer).and(sinon.match(function(val) {
return val.toString() === expectation;
}));
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句