LINUX.ORG.RU

Как заставить себя писать юнит-тесты?


2

3

Такой вот несколько странный вопрос.

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

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

Собственно, вопрос: как приучить себя писать тесты на каждый чих, как это, видимо, делают Ъ-ынтырпрайз-разработчики?

(TDD не предлагать. Я никогда не объясню это заказчику.)

Никак. Или Вы вдохновляетесь тем, что ваш протестированный код всегда работает корректно, и тогда пишите тесты сами по своему горячему желанию, или не вдохновляетесь, и тогда быдлокодите до просветления. После просветления начинаете вдохновляться.

Sorcerer ★★★★★
()

TDD не предлагать. Я никогда не объясню это заказчику.

А что, заказчик следит за тем, как ты пишешь каждую строчку?

buddhist ★★★★★
()

главное - начать, а дальше не захочется бросать дело, на которое потрачень n сил

IvS
()

TDD не предлагать. Я никогда не объясню это заказчику

А зачем это объяснять заказчику?

anonymous
()

Сделать средней сложности проект в один смычек без ТЗ. Как правило, после того как несколько раз невзначай поломаешь то, что «гадом-буду-вчера-работало», желание писать тесты появится само собой, как бриться, чистить зубы, мыть руки с мылом.

unborn
()

Кстати TDD и юнит-тесты, абсолютно параллельные понятия.

unborn
()

Зачем себя приучать делать ненужное? Видишь опасное место - написал тест-проверку, если и так уверен в коде - нафига время тратить?

pulo
()

как приучить себя писать тесты на каждый чих

Не нужно их писать на каждый чих. Тесты нужны тогда, когда тебе необходимо изменять код. Чувствуешь, потянулись загребущие ручонки к клавиатуре — будь добр, проверь наличие тестов для всего, что потенциально могут затронуть твои изменения. И делать push origin можно лишь тогда, когда тесты проходят и до, и после.

Corey
()

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

shamaz
()

Сломайте дебагер. Потребность в юнит тестах сразу станет очевидной. Через некоторое время про дебагер просто забудете. Тренироваться можно на серверном приложении. Его, как правило, дебагером хлопотно.

vada ★★★★★
()

Когда будешь что-то рефакторить, перед этим напишешь тест. Нашел баг — написал тест, который выявит такой баг в случае его повторного появления. Глядишь, и все покроется.

vurdalak ★★★★★
()
Ответ на: комментарий от pseudo-cat

О, Вы из тех супер кодеров которые все могут - и кодить, и тестить (как белым, так и черным ящиками), анализировать нужды клиента, думать, как лучше реализовать взаимодействие участка функциональности с пользователем. Круто, да, дайте автограф!

tooolya
()

Никак, ты должен захотеть писать тесты.

baverman ★★★
()

Собирай покрытие юнитестами и смотри ка кна графике оно растет. Также можно выдвать степень покрытия как метрику заказчику. Типа «в этом квартале, я планирую достичь покрытия 10%»

vromanov ★★★
()

Не надо себя заставлять. Жизнь заставит.

geometer
()
Ответ на: комментарий от Sorcerer

У меня возник вопрос. Как писать тесты для более-менее абстрактных вещей, я могу понять. А как быть, например, с классом, хитро опрашивающим определенные события в конкретной операционной системе? Создавать отдельную виртуальную среду с этой операционкой, грузить туда и выполнять?

uuwaan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.