Здравствуйте, Evgeny.Panasyuk, Вы писали:
S>>А чего там обсуждать-то?
EP>·>Можно, конечно. [bНо непонятно зачем[/b].
А. Ну, у меня отпуск, настроение хорошее, спорить не тянет

Незачем, значит незачем.
EP>Да, это преимущество. Но с другой стороны в юнит тестами намного проще перевести код в состояние всех edge-case'ов (в которых в том числе могут выстрелить assert'ы) по сравнению с интеграционными тестами.
Ага. Но это важно в первую очередь для всяких хелперов, т.е. кусков кода, которые будут переиспользоваться в самых неожиданных местах. Вот там юнит-тесты и проверки всяких нежданчиков однозначно нужны.
А в сложных штуках, которые из этих самых хелперов собираются, оказывается полно кода, который хоть и простой, но всё равно хорошо бы проверить. Но при этом не разбирать код на доступные тестам куски, т.к. это заметно дороже обходится. Комбинации из ассертов и интеграционных тестов тут альтернативы нет, кмк.
EP>100% code coverage не даёт гарантии попадания во все edge cases.
Ага. Для меня code coverage — удобнейший инструмент для подсветки новых / изменённых кусков кода, которые ещё не покрыты тестами. Само качество покрытия, понятное дело, автоматом не проверяется никак (если говорить про реальные языки, а не про фантастику с полной формальной верификацией кода), только ручками.