Javascript 返回存根的存根

Javascript 返回存根的存根,javascript,unit-testing,sinon,Javascript,Unit Testing,Sinon,假设您有返回包含预编程函数的对象的代码,您可以这样使用: 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 }); var mockServicePost = sinon.stub

假设您有返回包含预编程函数的对象的代码,您可以这样使用:

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
  });
var mockServicePost = sinon.stub();
var mockService = sinon.stub();
mockService.returns({
  post: mockServicePost
});
我怎样才能使用它进行单元测试

要指示函数返回的内容,需要使用存根:

var mockService = sinon.stub();
mockService.returns(/* some return value */);
但假设我想验证
someFunction
是否使用正确的参数调用,以及是否使用正确的参数调用了返回的post函数。我需要一个存根来返回存根:

mockService.returns({
  post: sinon.stub()
});
在本例中,如何访问
mockService.post
以验证传递的参数是否正确


额外问题:此设计模式的名称是什么(返回具有预编程行为的函数)?我以前见过它,但不知道它的名字。

因为没有人回答,我就这样处理:

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
  });
var mockServicePost = sinon.stub();
var mockService = sinon.stub();
mockService.returns({
  post: mockServicePost
});

但我很想知道是否有比这更优雅的解决方案。

关于设计模式,也许您正在考虑?