Я смею не соглашаться с большинством ответов, и мне тестовый код не такой же, как производственный код . Конечно, тестовый код заслуживает той же заботы и внимания, что и производственный код, потому что это часть общих усилий по разработке, но они различаются по своей природе. Я не буду повторяться, а скорее укажу на другой мой ответ: Можно ли копировать прошедший модульный тест, когда логика такая же .
Тем не менее, повторение создание тестовых данных - это плохо. Что лучше, так это продумать набор данных, тщательно созданный для тестирования, и поддерживать тестирование в большинстве случаев. Этот набор данных может быть создан методом setUp
. Может быть несколько наборов тестовых данных, охватывающих варианты бизнес-правил, если это необходимо. Создать полезные наборы тестовых данных непросто, но на это стоит потратить некоторое время. Кроме того, тестовые данные могут быть загружены из JSON или около того. В некоторых случаях легче поддерживать.
Юнит-тесты обычно не должны зависеть друг от друга. Но часто тестовый пример зависит друг от друга . Например, чтобы проверить список, нужно проверить, что add()
работает, что isEmpty()
работает, что remove()
работает. Тестирование remove()
предполагает, что add()
работает. Для такого сценария вы можете использовать JExample , фреймворк для модульного тестирования, с помощью которого вы можете «связывать» тесты.