Мне нужно выполнить аргумент, который является обратным вызовом шутки.
В документации jest их пример обратного вызова касается тестирования первого обратного вызова. У меня есть поведение внутри вложенных обратных вызовов, которые мне нужно проверить. В примерах обещаний они используют resolves
и rejects
. Есть ли что-нибудь подобное для вложенных обратных вызовов? В настоящее время я выполняю аргумент смоделированного вызова, но я не уверен, что это рекомендуемый способ.
Тестируемая система:
function execute() {
globals.request.post({}, (err, body) => {
// other testable behaviors here.
globals.doSomething(body);
// more testable behaviors here. that may include more calls to request.post()
});
}
Тест:
globals.request.post = jest.fn();
globals.doSomething = jest.fn();
execute();
// Is this the right way to execute the argument?
globals.request.post.mock.calls[0][1](null, bodyToAssertAgainst);
expect(globals.doSomething.mock.calls[0][1]).toBe(bodyToAssertAgainst);
Мой вопрос в комментариях к коду выше. Это рекомендуемый способ выполнения обратного вызова, который является аргументом проверяемой функции?