Есть ли в Jest параметр, или есть правило Lint или способ гарантировать, что в каждом тесте Jest есть хотя бы один expect()
вызов?
Один из способов обеспечить это - использовать expect.assertions()
в каждом тесте. Это требует, чтобы я не забывал добавлять это к каждому тесту.
Я ищу решение для инструментов здесь.
2 ответа
Вы можете достичь желаемого, установив установочный файл, который определяет ловушку beforeEach
для всех ваших тестов.
Это можно сделать, указав файл с помощью setupFilesAfterEnv
jest вариант конфигурации.
Кроме того, вы можете использовать hasAssertions
, чтобы проверить, Тест имеет по крайней мере одно утверждение.
Принимая все это во внимание, вы можете получить файл конфигурации jest, например:
setupFilesAfterEnv: [
'<rootDir>tests/support/check-assertions-number.js',
],
И в файле check-assertions-number.js
:
beforeEach(() => {
expect.hasAssertions();
});
Один из способов убедиться в этом состоит в том, чтобы в каждом тесте использовалась функция allow.assertions (). Это требует, чтобы я не забывал добавлять это к каждому тесту.
Я не специалист по шуткам, но можно ли это сделать в разборочной части тестов? Вам все равно придется определять его для каждого модуля, но это минимизирует дублирование по сравнению с каждым тестом.
РЕДАКТИРОВАТЬ: Исходя из перспективы мокко, можно настроить глобальные обработчики разрыва через afterEach
вне блока describe
, что может быть возможно в jest, так что вам даже не нужно определять его в на уровне модуля.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.