Содержание
- 2. Тестирование бизнес-логики в .NET Швец Сергей, директор по ИТ, ManageBand
- 3. О себе 9 лет в профессиональной разработке: PHP, Python, Ruby Любимый и основной язык C# Немного
- 4. Зачем нужны тесты? Выявление регрессий Новый функционал Рефакторинг Документация TDD (Test Driven Development) 1 2 3
- 5. Препятствия Большие инвестиции времени и сил Нужно подстраивать код под тесты Тесты нужно поддерживать Сроки Лень
- 6. Case1. Задача: Обработка телеметрии от оборудования Windows-сервис (автономность) Трудно понять, что произошла ошибка Высокая ответственность SqlServer,
- 7. Работа с БД через ORM Невозможно протестировать логику
- 8. Абстракция вместо реальной базы Business Logic База данных > IDataSource RealDataSource TestDataSource
- 9. Источник данных стал абстрактным (его можно подменить в тестах) Полностью протестирован MessageProcessor (15-20 зеленых тестов) Можно
- 10. 1. Изменилась схема данных Ошибка:
- 11. 1. Изменилась схема данных Ошибка: 2. Ошибка при построении конфигурации (NRE)
- 12. 1. Изменилась схема данных Ошибка: 2. Ошибка при построении конфигурации (NRE) 3. Ошибка при вставке данных
- 13. 1. Изменилась схема данных Ошибка: 2. Ошибка при построении конфигурации (NRE) 3. Ошибка при вставке данных
- 14. + Чисто и красиво Быстро работают Минусы Плюсы + Не протестирован DataSource Нужно подстраивать код под
- 15. Опрос. Есть ли тесты в бизнес-логике? Нет Нет Да (но нет БД) * выборка не репрезентативна
- 16. Опрос. Есть ли тесты в бизнес-логике? Нет Нет Да (но нет БД) * выборка не репрезентативна
- 17. Тестовая база Business Logic База данных ТЕСТОВАЯ База данных Настоящие таблицы, триггеры, ограничения Очищается перед каждым
- 18. Case2. Задача: Офлайн расчет остатков товара на планшете Очень много не очевидной логики Рефакторинг (уже запущено
- 19. Решение 0. DbTest 1. Фикстуры 2. TestBuilder Актуализирует структуру БД Очищает перед каждым тестом Заливает фикстуры
- 20. Фикстуры
- 21. Фикстуры
- 22. Тесты
- 23. Тесты ARRANGE Поступление Отгрузка
- 24. Тесты ACT Тестируемый метод
- 25. Тесты ASSERT Проверка результатов
- 26. + Малые трудозатраты на тесты Тестирование настоящей базы (SQL запросы, тригеры, ограничения) Можно тестировать legacy-код без
- 27. @justserega https://github.com/justserega/DbTest Install-Package DbTest Install-Package DbTest.EF6 Install-Package DbTest.EFCore Ссылки
- 28. goo.gl/LRwjPo
- 30. Скачать презентацию