Я постоянно слышу, как люди говорят о том, что тесты должны быть простыми, удобными в сопровождении и прямолинейными, но что происходит с возможностью повторного использования кода в модульном тестировании?
Возьмем, например:
def test_some_1():
...some code
def test_some_2():
...code repeated from test_some_1
Не лучше ли инкапсулировать повторяющийся код из двух тестов в функцию, которая содержит необходимые утверждения?
Я спорил с некоторыми программистами по этому поводу, и они не согласились, они сказали, что тесты должны быть тупыми, что повторное использование кода здесь не годится. Причина этого в том, что в консоли django не очень ясно, где утверждение на самом деле не удалось, потому что утверждение было в функции, хотя я не согласен, потому что его использование с носом дало бы вам имя теста и трассировку, хотя ребята снова не согласились, заявив, что тест может быть запущен индивидуально без носа (и поэтому вы не можете видеть все эти детали).
Ребята, что вы думаете?
- Хорошо ли использовать возможность повторного использования кода в модульных тестах?
- Если повторное использование может/должно быть использовано, то как преодолеть другую проблему, касающуюся точного определения утверждений?
setUp
иtearDown
? docs.python.org/2/library/unittest.html# unittest.TestCase.setUp - person Mihai Zamfir   schedule 04.06.2014