一个存根 returns 一个存根
A stub that returns a stub
假设您的代码 return 是一个包含预编程函数的对象,您可以像这样使用它:
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 对其进行单元测试?
要直接什么函数returns,需要用到stub:
var mockService = sinon.stub();
mockService.returns(/* some return value */);
但是假设我想验证是否使用正确的参数调用了 someFunction
,此外还要验证是否使用正确的参数调用了 returned post 函数。我需要一个存根到 return 一个存根:
mockService.returns({
post: sinon.stub()
});
在这种情况下,如何访问 mockService.post
以验证是否传递了正确的参数?
奖励问题:这个设计模式的名称是什么(return使用预编程行为的函数)?以前看过,不知道叫什么名字
因为没有人回答,所以我解决了这个问题:
var mockServicePost = sinon.stub();
var mockService = sinon.stub();
mockService.returns({
post: mockServicePost
});
但我很想知道是否有比这更优雅的解决方案。
假设您的代码 return 是一个包含预编程函数的对象,您可以像这样使用它:
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 对其进行单元测试?
要直接什么函数returns,需要用到stub:
var mockService = sinon.stub();
mockService.returns(/* some return value */);
但是假设我想验证是否使用正确的参数调用了 someFunction
,此外还要验证是否使用正确的参数调用了 returned post 函数。我需要一个存根到 return 一个存根:
mockService.returns({
post: sinon.stub()
});
在这种情况下,如何访问 mockService.post
以验证是否传递了正确的参数?
奖励问题:这个设计模式的名称是什么(return使用预编程行为的函数)?以前看过,不知道叫什么名字
因为没有人回答,所以我解决了这个问题:
var mockServicePost = sinon.stub();
var mockService = sinon.stub();
mockService.returns({
post: mockServicePost
});
但我很想知道是否有比这更优雅的解决方案。