【发布时间】:2015-02-24 20:14:51
【问题描述】:
假设您的代码返回包含预编程函数的对象,您可以这样使用:
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 来验证是否传递了正确的参数?
额外问题:这种设计模式的名称是什么(返回具有预编程行为的函数)?我以前见过它,但不知道它的名字。
【问题讨论】:
-
关于设计模式,你可能想到的是Curried Functions?
标签: javascript unit-testing sinon