Использование классов приложений в качестве утилит в модульных тестах - PullRequest
0 голосов
/ 01 ноября 2019

Это вопрос о передовой практике для модульных тестов. Допустим, у меня есть ClassA, который выполняет преобразование некоторых объектов (из CSV в Java-бины, используя внешнюю библиотеку). Затем у меня есть ClassB, которому нужны эти преобразованные Java-бины для выполнения вычислений. При написании модульного теста для ClassB допустимо ли использовать метод преобразования ClassA для получения этих преобразованных объектов bean? Другими словами, используйте класс приложения в качестве утилиты в модульном тестировании.

Другой вариант - написать метод теста util, который будет иметь тот же код, что и ClassA (преобразование выполняется с использованием внешней библиотеки, поэтому его легко использовать как в классе приложения, так и в классе утилиты тестирования. )

1 Ответ

0 голосов
/ 01 ноября 2019

при модульном тестировании метода

  • вы подготавливаете данные (макеты, жестко запрограммированные и т. Д.),
  • вы вызываете тестируемый метод
  • вы оцениваетерезультат

что вы не делаете, это вызываете другие вещи, служебные методы и т. д.

Почему?

Потому что это означает, что ваш код зависит от других вещей и не работает изолированно.

Это также означает, что в вашем тесте слишком много знаний о коде, и это плохо, особенно когда вы начинаете проводить рефакторинг. Слишком много знаний о коде означает, что, как только вы измените код, вы прервете большинство тестов, что противоречит одной из их целей - облегчить рефакторинг (и жизнь разработчиков).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...