Проблема:ожидать() без реальных ожиданий
В последнее время во время просмотра наших существующих тест-кодовую, я заметил опасный вид опечатка/ошибка, когда expect()
использовали без «согласования» части:
expect(page.filters.fromDateLabel.getText(), "After");
Я уверен, что toEqual()
должен был быть использован здесь:
expect(page.filters.fromDateLabel.getText()).toEqual("After");
Th Проблема в том, что jasmine
не преминул бы ожидать в этом случае (ну, очевидно, потому что ничего не ожидалось). И это ставит нас к более серьезной проблеме - ничто не было фактически проверено в тестовом примере - это проходило без каких-либо ожиданий. Мы получили ложное представление о том, что было проверено.
Вопрос:
Я хочу, чтобы поймать эти ошибки как можно быстрее. Как вы думаете, как я должен справиться с этой проблемой?
Мысль:
- как-то провалить тест, если не было никаких ожиданий, сделанные в нем (не уверены, что если
jasmine
имеет ничего подобного встроенный) - «пятачка» вопрос
expect()
и предупреждение/вызвать ошибку, если ничего не называли на «ожидать» часть - анализа использования статического кода - определить пользовательское
eslint
правило
Верховенство пуха бы мое предпочтение, как это наименее инвазивный – Phil
@Phil Я согласен, это то, что я собираюсь попробовать первым, так как это звучит как самый простой вариант - + у нас уже есть набор настраиваемых правил eslint. Вообще говоря, мне также нравится вариант №1 - вероятно, имеет смысл указать разработчику e2e, что он/она фактически ничего не проверял в тесте. – alecxe
@Phil и да, в идеальном мире такие вещи не должны происходить, так как разработчик, пишущий тест, должен увидеть неудачу теста и убедиться, что он проверяет, что должно было быть проверено. Но опечатки и ошибки случаются со всеми - я просто хочу, чтобы эти вещи оказались «свежими» :) – alecxe