Чай / Мокко: Мой тест не выдаст ошибку, несмотря на распознавание AssertionError - PullRequest
0 голосов
/ 18 октября 2019

Я пишу некоторые тесты, и дела идут хорошо, но если я попытаюсь утверждать что-то, что, как я знаю, дико неправильно, тест пройдет, но я также получу уведомление, что компилятор выдает ошибку AssertionError. Однако на самом деле тест не проходит.

Я попытался вернуть ожидаемую фразу, но меня немного смущает вопрос, почему она не работает, и кажется, что это должно быть что-то простое.

describe('api/users/changeAccountDetails', function() {
    beforeEach(()=>{
        return chai.request(app)
        .post('/api/users/signup')
        .send({
            firstName,
            lastName,
            username,
            password
        })
        .then(res => {
            console.log('a ok');
        })
        .catch(err => console.error(err));

    });

    afterEach(()=> {
        return User.deleteOne({})
    })


    describe('POST', ()=>{
        it('should update the firstName when given a string', ()=>{

        return chai.request(app)
        .post('/api/users/changeAccountDetails')
        .send({
            username,
            firstName: "Samus",
            lastName
        })
        .then(res => {
            console.log('b ok');
            //TODO: figure out why this isn't throwing an error if I make the number something else

            console.log(res.body);
            expect(res.body.code).to.equal(201);
            expect(res.body.user.firstName).to.equal('Michale');


        })
        .catch(err => console.error(err));  
        })
    });
})

Ответ выглядит так:

b ok
{ code: 201,
  user:
   { firstName: 'Samus',
     lastName: 'User',
     _id: '5da947f7544bce4b6d71111f',
     username: 'exampleUser',
     password:
      '$2a$10$ABQzLOInfORJjsKd5Q3A9ejutCo22EVThHYLsEPPbqpVK717yJNGy',
     cats: [],
     __v: 0 } }
{ AssertionError: expected 'Samus' to equal 'Michale'
    at chai.request.post.send.then.res (/home/adrian/Development/gdc2API/test/test-users.js:186:52)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  message: 'expected \'Samus\' to equal \'Michale\'',
  showDiff: true,
  actual: 'Samus',
  expected: 'Michale' }
        ✓ should update the firstName when given a string

closing the server

1 Ответ

0 голосов
/ 19 октября 2019

Сгенерированная ошибка фактически перехватывается следующим блоком:

.catch(err => console.error(err));

Из-за этого блока ошибка не распространяется, следовательно, тест успешно завершен. Удаление этого блока должно решить вашу проблему.

...