Правильный способ состоит в том, чтобы просто вызвать Nock
дважды.
nock( some_url )
.post( '/aaaa', bodyFn )
.reply( 500, resp );
nock( some_url )
.post( '/aaaa', bodyFn )
.reply( 200, resp );
Способ, которым работает Nock, заключается в том, что каждый вызов регистрирует перехватчик для some_url
.Фактически, при первом вызове some_url
будет очищен первый перехватчик и т. Д.
, как указано в документах :
При установке перехватчикадля URL и того перехватчика, который он используется, он удаляется из списка перехватчиков.Это означает, что вы можете перехватывать 2 или более вызовов на один и тот же URL и возвращать разные вещи для каждого из них.Это также означает, что вы должны установить один перехватчик для каждого запроса, который вы собираетесь получить, в противном случае nock выдаст ошибку, потому что этот URL отсутствует в списке перехватчиков.Если вы не хотите, чтобы перехватчики удалялись по мере их использования, вы можете использовать метод .persist ().