🔥

Тред (Дима Коваленко)


@jsunderhood это как геи — ты точно знаешь, что они есть, но ни с одним не знаком. так же и тдд
А лучше и не скажешь :) Вот я например, латентный ТДД-шер. И не потому что я там такой крутой программист, а исключительно из прагматичных побуждений. ТДД экономит время. Немного об этом в треде 👇 twitter.com/cuz_you_love/s…

Лучше всего это можно проиллюстрировать на примере бека. Представьте ситуацию: Ваня получает тикет на создание контроллера в АПИ Ваня садится кодить Открывает свой Rest API клиент и начинает мануально проверять свой контроллер.

Впадает в истерику потому что его авторизационный токен экспайрится каждые 10 минут (например) Доделывает контроллера Открывает ПР Ему дают по башке за то что он забыл написать тесты Героически отправляется писать тесты, допустим используя supertest

И собственно проблема в чем: Его тесты делают абсолютно тоже самое, что Ваня делал в 3 пункте попутно страдая. Они ходят на реальный API, делают запрос и получают ответ. И ко всему прочему вся инфраструктура необходимая для авторизации – уже написана и работает автоматически.

Так не было бы логично избавится от мануальной проверки, и проверить свой контроллер сразу с помощью тестов?

Мне кажется, что в ТДД главное это не факт написания тестов до кода. Можно написать и после кода, главное что вы свой код СРАЗУ проверяли тестами. А если вы начнете делать хотя бы так, то сразу окажется что писать тесты до кода – не так уж сложно.

!! Вообще эту проблему можно описать одной фразой – “Тестирование реализации”. Тесты должны проверять не то как наш код НАПИСАН, а то как наш код РАБОТАЕТ - и будет вам счастье :)
И в таком случае у вас просто не получится писать плохие тесты. Потому что вашей задачей станет проверить что код РАБОТАЕТ. twitter.com/jsunderhood/st…

И кстати, мои ненавистные white-box тесты очень сложно писать именно с помощью TDD. Так как white-box тесты много знают про реализацию – такие тесты невозможно написать до того как собственно эта реализация появилась. И это круто.

Кстати еще многие переживают по поводу отладки. Мол как я буду отлаживать приложение, если проверяю его с помощью тестов? Запросто. В vscode можно настроить дебаггер для jest-овых тестов. И тогда просто ставите .only не тест, нажимаете F5 и дебажите. github.com/microsoft/vsco…