Почему мой ожидаемый отказ не является успешным случаем в Мокко с использованием Chai-как-обещание?
Я хочу заявить об отказе от обещания в тестовом случае мокко. Поэтому я делаю это в машинописи:
import {
expect,
use,
} from "chai";
import * as chaiAsPromised from "chai-as-promised";
use(chaiAsPromised);
describe("Promise rejection", async () => {
it("should assert promise rejection", async () => {
const msg = "I AM THE EXPECTED ERROR";
const rejectedPromise = Promise.reject(msg);
return expect(rejectedPromise).to.eventually.throw(msg);
});
});
Я ожидаю, что мой тест будет успешным, так как ожидаемая ошибка выдается. Тем не менее мой тест не проходит с:
Error: the string "I AM THE EXPECTED ERROR" was thrown, throw an Error :)
at <anonymous>
at runMicrotasksCallback (internal/process/next_tick.js:122:5)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
1 ответ
Вы хотите проверить отказ от обещания, а не ошибку. Следовательно, используйте rejectedWith
:
return expect(rejectedPromise).to.eventually.be.rejectedWith(msg);