Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Помните один из минусов слабо связанных архитектур? Из-за того, что в них преобладает позднее связывание
Вызов метода DoHeavyBreath у класса Luke — логическая ошибка не видимая компилятору.
Но теперь мы можем воспользоваться TDD для обнаружения этой ошибки.
Мы создаем метод для тестирования метода main. Простейшим способом
чтобы я писал рабочий код
IRepository rep = Factory.Get<IRepository>();IRepository rep = Preprocessor.DoSomeStrangeLogic(Factory.Get<IRepository>());готов поспорить, что этот одноразовый скрипт вы таки тестируете на тестовой базе данных
И какая разница, создавать тестовую БД или написать пару тестов, которые будут проверять правильность работы этого скрипта?
Но если стремиться делать тесты как можно проще, то очень даже влияют.
больше параметров в функции/методы нужно будет передавать
но вот вносить в неё изменения будет проще
Я хочу, чтобы эти тесты выполнялись для каждой реализаии интерфейса, появляющейся в проекте
Есть вроде инструмент, которые автоматически генерируют код, создающий объект заданного типа.
Пример 1
Пример 2
Цель примера — продемонстрировать идею. Как правило, он получается слишком простым. Но в более сложном примере сложнее разобраться.
При появлении нового контроллера ваши тесты перестают проходить?
C помощью какого мехнизма тесты перестают проходить при появлении нового контроллера?
Почему Вы должны сейчас все бросить и начать писать юнит тесты