Я пытался выполнить модульное тестирование функции в узле, которая выдает ошибку независимо от какого-либо условия. Вот мое определение функции узла.
public testFunction() {
throw new Error('Test Error');
}
Как вы можете видеть, эта функция всегда выдает ошибку при каждом вызове. Я попытался выполнить модульное тестирование этой функции, используя метод jest .toThrow (error?) . Я не смог выполнить модульное тестирование функции, как ожидалось.
Ниже приведены тестовые примеры, которые я написал и приложил снимок экрана с ошибками, с которыми я столкнулся при выполнении того же самого.
Контрольный пример № 1
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(testClass.testFunction()).toThrow();
});
Контрольный пример № 2
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(testClass.testFunction).toThrow();
});
Контрольный пример № 3
Из этого блога было упомянуто, что
Если мы хотим ожидать, что функция сгенерирует исключение для определенных входных параметров, ключевой момент заключается в том, что мы должны передать определение функции и не вызывать нашу функцию внутри ожидаемого значения.
Итак, я обновил свой тестовый пример как
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(() => testClass.testFunction()).toThrow();
});
Но он выдавал ошибку вроде
В чем проблема с моей реализацией? Каков правильный метод для модульного тестирования функции, которая возвращает объект ошибки?