Это хорошая практика, чтобы исправить существующие JUnits, чтобы они проходили после добавления нового кода? - PullRequest
0 голосов
/ 30 ноября 2018

Является ли хорошей практикой продолжать исправление существующих Junits, чтобы они проходили после написания нового кода?

Пример.

  1. Есть 100 тестов JUnit, которые зеленого цвета
  2. Добавлен новый блок if else для поддержки некоторых новых функций или новый класс помощника введен в целевой класс
  3. Из-за этого отказывают около 10 существующих Junits.

Правильно ли реорганизовать существующие Junits, чтобы они пропускали добавленный код, или реорганизовать код таким образом, чтобы существующие JUnits должны были пройтибез каких-либо изменений?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Единственная цель модульных тестов - проверить функциональность единицы кода.Когда код изменяется,

  • вы можете добавить новую функциональность в целом - в этом случае существующие тестовые примеры не должны давать сбой, если они это делают, это из-за ошибки, которая была введена в новом набореизменения кода
  • вы можете изменить существующую функциональность - в этом случае существующие тестовые сценарии могут потребовать некоторых изменений, например, вам может потребоваться изменить данные, которые вы передаете в качестве ввода или оператор Assert для измененного вывода.
0 голосов
/ 30 ноября 2018

Тот факт, что тесты теперь не проходят, означает, что вы изменили поведение своего кода.Вообще говоря, это может означать одно из двух:

  1. Если это изменение в поведении является преднамеренным, модульный тест теперь неверен и должен быть исправлен.
  2. Если это изменение былонепреднамеренно, это означает, что вы ввели ошибку - т. е. модульное тестирование правильное, и вы должны исправить код, чтобы повторить тест снова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...