Я работаю над Android-разработчиком довольно часто, но никогда полностью не использую TDD в Android. Однако недавно я попытался разработать свое новое приложение с полным TDD. Так вот мое мнение ..
Означает ли это, что написание теста всегда включает изменение производительного кода, чтобы ввести пустышки без функциональности?
Я думаю, что да. Как я понимаю, все тесты эквивалентны всем спецификациям / вариантам использования, которые у меня есть в программном обеспечении. Таким образом, написание теста на провал сначала касается попытки заполнить спецификации требований тестовыми кодами. Затем, когда я попытался заполнить производительный код для прохождения только что написанного TC, я действительно попытался заставить его работать. Пройдя некоторое время, я был очень удивлен тем, что размер моего производительного кода очень мал, но он способен удовлетворить большую часть требований.
Лично для меня все отказавшие TC, которые я написал до продуктивного кода, на самом деле были взяты из списка вопросов, которые я обсуждал с требованием, и иногда использовал его для изучения крайних случаев требования.
Итак, основным рабочим процессом является Red - Green - Refactor, который я получил из презентации от Bryan Breecham - https://www.infoq.com/presentations/tdd-lego/
О,
Я хотел бы иметь ситуацию, когда я могу писать код только внутри src / test /, вообще не касаясь src / main, но без самоанализа.
Для меня, я думаю, что это возможно, когда вы сначала пишете всю свою продуктивную логику, а затем UT играет роль выполнения требования. Это просто другой путь. Таким образом, в целом, я думаю, что TDD - это подход, но люди могут использовать модульное тестирование в разных целях, например, для сокращения времени тестирования и т. Д.