假设您有代码返回包含预编程函数的对象,您可以这样使用:
someFunction(/* pass in data */)
.post(/* some data */) //Returned post function is pre-programmed to send a POST request to the right URL
.then(function() {
//do something
});
如何使用sinon.js进行单元测试?
要指示函数返回的内容,您需要使用存根:
var mockService = sinon.stub();
mockService.returns(/* some return value */);
但是,假设我要验证使用正确的参数调用someFunction
,此外还要验证返回的post函数是否使用正确的参数调用。我需要一个存根来返回存根:
mockService.returns({
post: sinon.stub()
});
在这种情况下,如何访问mockService.post
以验证是否传递了正确的参数?
奖金问题:此设计模式的名称是什么(返回具有预编程行为的功能)?我以前见过它,但不知道它的名字。
答案 0 :(得分:0)
由于没有人回答,我这样解决了这个问题:
var mockServicePost = sinon.stub();
var mockService = sinon.stub();
mockService.returns({
post: mockServicePost
});
但我很想知道是否有比这更优雅的解决方案。