【发布时间】:2018-06-04 10:54:08
【问题描述】:
我想让 mock 方法为对同一方法的连续调用启用不同的响应。
我发现Sinon有onCall,它允许我可以像下面这样存根方法,
let stubCall = sandbox.stub(Math, 'random');
stubCall.onCall(0).returns(Promise.resolve(0));
stubCall.onCall(1).returns(Promise.resolve(-1));
但我不知道如何让它在这样的 AWS 模拟框架上工作。
AWS.mock('CloudFormation', 'describeStacks', Promise.resolve(stackResponse));
我试过了
AWS.mock('CloudFormation', 'describeStacks', Promise.resolve(stackResponse)).onCall(0).returns(Promise.resolve(res));
和
let mockCall = AWS.mock('CloudFormation', 'describeStacks', Promise.resolve(res));
mockCall.onCall(0).returns(Promise.resolve(res));
他们都没有工作。
我找了人discuss this issue,提到这个aws-mock使用sinon,应该可以使用onCall。有人使用成功吗?
由于我使用了 Promise,我不知道我还能做些什么来为同一个方法返回不同的响应已被多次调用。
【问题讨论】:
标签: amazon-web-services mocking mocha.js sinon chai