ОП здесь - я придумал ответ и решил, что оставлю его здесь, пока кто-нибудь не придумает лучший.
Причина, по которой он не идеален, заключается в том, что в каждом тесте требуется одна строка, которая обновляет общую переменную currentResponse
в ответ на этот тест. Но если ваши тесты охватывают много файлов, вы можете сохранить глобальную переменную в вашем скрипте установки:
// you can use a global variable if tests span many files
let currentResponse = null;
afterEach(function() {
const errorBody = currentResponse && currentResponse.body;
if (this.currentTest.state === 'failed' && errorBody) {
console.log(errorBody);
}
currentResponse = null;
});
И тогда каждый из ваших тестов будет обновлять текущий ответ, чтобы мы могли зарегистрировать его в afterEach
, в случае его отказа.
describe('POST /interests', () => {
it('400s if categoryName field is not present in the category', done => {
const fields = [
{ language: 'en' },
];
chai.request(server)
.post('/interests')
.set('X-Access-Token', testUser.accessToken)
.send(fields)
.end((error, response) => {
currentResponse = response; // update it here
response.should.have.status(400);
done();
});
});
И это будет выводить ответ при возникновении ошибки, чтобы вы могли видеть, что возвратил сервер.