Я использовал Mocha для тестирования в Node, потому что, похоже, это то, что использует большинство людей.Я также использую MongoDB для хранения своих данных, и так как мой сервер - это простой API-сервер, почти все мои методы - это простые запросы к базе данных, которые я пытаюсь протестировать с помощью Mocha.Теперь проблема, с которой я сталкиваюсь, заключается в том, что (кроме того, что в общем случае довольно сложно тестировать асинхронные функции), я не могу найти правильный способ проверки исключения mongoDB.
it('Should not create account', async (done) => {
try {
await createAccountDB(user);
await createAccountDB(user);
} catch (err) {
assert.notEqual(err, null);
console.log(err);
}
finally {
done();
}
});
});
Я пытаюсь создать учетную запись для пользователя (в основном просто сохранить объект в БД), а затем снова создать ту же учетную запись, что должно привести к ошибке дубликата ключа.
Теперь этоне работает, и, насколько я могу судить, это потому, что я определил как асинхронный, так и сделал.Причина, по которой я это сделал, заключается в том, что если я не определю async, мне понадобится целая куча .then и .catches, которые сделают код ужасным, но если я не включу, то done () в finallyБлок, мой тест, кажется, никогда не попадает в блок catch.
Есть ли способ написать такие тесты в Mocha, которые не делают ваш код абсолютно ужасным?