Является ли дублированный код более приемлемым в модульных тестах? - PullRequest
97 голосов
/ 25 сентября 2008

Некоторое время назад я испортил несколько юнит-тестов, когда прошел и реорганизовал их, чтобы сделать их более СУХИЕ - цель каждого теста уже не ясна. Кажется, есть компромисс между удобочитаемостью тестов и ремонтопригодностью. Если я оставлю дублированный код в модульных тестах, они будут более читабельными, но тогда, если я изменю SUT , мне придется отслеживать и изменять каждую копию дублированного кода.

Согласны ли вы с тем, что этот компромисс существует? Если да, то предпочитаете ли вы, чтобы ваши тесты были читабельными или обслуживаемыми?

Ответы [ 11 ]

1 голос
/ 25 сентября 2008

«рефакторинг их, чтобы сделать их более сухими - цель каждого теста больше не была ясна»

Похоже, у вас были проблемы с рефакторингом. Я просто догадываюсь, но если это окажется менее ясным, не значит ли это, что у вас еще есть над чем поработать, чтобы у вас были достаточно элегантные тесты, которые были бы совершенно ясными?

Именно поэтому тесты являются подклассом UnitTest - поэтому вы можете создавать хорошие тестовые наборы, которые будут правильными, легко проверяемыми и понятными.

В старину у нас были инструменты тестирования, в которых использовались разные языки программирования. Было трудно (или невозможно) создавать приятные, простые в работе тесты.

У вас есть все возможности - независимо от того, какой язык вы используете - Python, Java, C # - так что используйте этот язык хорошо. Вы можете получить красивый тестовый код, понятный и не слишком избыточный. Там нет компромисса.

...