Я бы хотел, чтобы метод 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));
оба они не работали.
Я обнаружил, что люди обсуждают эту проблему , упомянутое, так как это aws-mock использует sinon, он должен иметь возможность использовать onCall.Кто-нибудь использует это успешно?
Поскольку я использую обещание, я не знаю, что еще я могу сделать, чтобы вернуть разные ответы для одного и того же метода, который был вызван несколько раз.