Что и как следует покрывать юнит-тестами
От: FrozenHeart  
Дата: 30.12.15 11:59
Оценка:
Привет всем!

Я думаю, все здесь считают, что написание юнит-тестов -- это неотъемлимая часть разработки любого более-менее порядочного программного обеспечения, не так ли?

Скажите, пожалуйста, всегда ли вы пишете юнит-тесты? На каких языках вы программируете и какие библиотеки используете для их написания? Делаете 100% покрытие кода тестами или "забиваете" на юнит-тестирование определённых частей проекта?

Я вот, например, до сих пор не могу понять, как можно писать тесты в некоторых случаях. Например, пишу я агрегатор объявлений с avito.ru на Python. Использую при этом фреймворк под названием Scrapy, который абстрагирует меня практически от всего (HTTP-реквесты, переподключения, редиректы etc). Всё, что мне остаётся -- вытащить из результата, переданного в мой callback в виде HTML-страницы, несколько значений, после чего записать их в БД / Excel-файл / etc. Что при таком подходе можно тестировать? Успешность выполнения GET-реквестов и валидность данных, которые прилетают мне в ответе? Так они выполняются где-то в недрах фреймворка, я даже знать-не знаю, какие там методы вызываются и что конкретно происходит. Даже если я посмотрю в исходники и увижу, что на самом нижнем слое находится, например, urllib из стандартной библиотеки Python, то полагаться на недокументированное поведение, на мой взгляд, в данном случае глупо. Успешность записи данных в БД / Excel-файл? Первое вообще непонятно, как зафейлиться может (разве что структура таблиц не совпадает с используемой мной моделью), второе ещё ладно.

В общем, поделитесь советами на тему того, что и как следует покрывать тестами, а что следует оставлять без покрытия. Чем вы руководствуетесь при написании юнит-тестов?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.