Re[21]: Нафига нужны юнит-тесты?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 09.10.11 18:06
Оценка:
Здравствуйте, netch80, Вы писали:


G>>>>Связь сама прямая. Рефакторинг — изменение (улучшение) кода, без изменения наблюдаемого поведения. Как гарантировать неизменность наблюдаемого поведения?

N>>>Мой вопрос был в слове _юнит_. Тесты бывают разные. Программа состоит из множества уровней реализации. Могут быть отдельные функции, модули, группы модулей, приложения (в нашем случае — именно на этом уровне), подсистемы, системы. Для каждого из них может быть свой уровень теста. Всё, что выше модуля — это уже не юнит-тесты. Но рефакторинг может, например, слить две подсистемы в одну, или разделить их. Чем тебе тут помогут именно юнит-тесты?
G>>А может и не слить. Гораздо больше маленьких рефакторингов выполняется, чем больших. Причем далеко не все из них занимаются механическим изменением код, которое можно автоматизировать.
N>Значит, ответа не будет. Ясно.
Ответа на что? Ты выдвинул предположение что при масштабных рефакторингах юнит-тесты не помогают. Я в принципе согласен с тобой, но все равно это не повод не писать их.

Опять приходим к простому выводу: если ты не видишь пользы в юнит-тестах — не пиши их. Возможно у тебя приложение уже написано так что юнит-тестами не покрывается и\или язык неподходящий. Но это все не проблема юнит-тестов.

G>>>>>> Если ты не пишешь заранее тесты, то рано или поздно у тебя получится забивание на тесты ради скорости написания, а потом тесты сделать, даже с мощными инструментами, очень сложно. Это ты кстати назвал "адаптацией".

N>>>>>Всё это замечательно, но ещё проще и удобнее делать это же без жёсткого test-first
G>>>>TDD не предполагает test-first всегда.
N>>>

Test-driven development requires developers to create automated unit tests that define code requirements (immediately) before writing the code itself.

Это из википедии. Если ты пользуешься другим источником определений — пожалуйста, но определи его заранее, чтобы не было разногласий только из-за этого.

G>>Это черезмерное упрощение, примерно как ООП — данные+методы (см соседнюю тему).

N>Видимо, есть какое-то тайное знание, которое мне знать не положено — рылом не вышел. OK.

Читать надо, я ссылки не записываю, иначе тебе подкинул бы. Если твое познание в TDD (да или в любом другом предмете) ограничивается википедией, то неудивительно что рано или поздно тебе сообщают вещи, о которых ты не знал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.