Українська
Підсумки
Висновки
Автоматизовані модульні тести перевіряють окремі класи швидко й повторювано, захищаючи від регресій; їх має бути найбільше в піраміді тестування. У .NET тести розміщують в окремому проєкті MSTest, що посилається на бібліотеку класів, і запускають у Test Explorer або командою dotnet test. Тест будують за шаблоном Arrange–Act–Assert, перевіряють результат твердженнями Assert, а набори даних задають атрибутами [DataRow], обираючи класи еквівалентності та граничні значення. Залежності від баз даних, мережі й часу замінюють тестовими двійниками через інтерфейси та TimeProvider. TDD будує код короткими циклами «червоний – зелений – рефакторинг». Покриття коду показує неперевірені частини, але не гарантує якість тестів. Рефакторинг покращує структуру коду без зміни поведінки: «запахи коду» усувають малими кроками під захистом тестів, використовуючи інструменти Visual Studio.
Питання для самоперевірки
- Навіщо потрібні автоматизовані тести? Що таке регресія?
- Які рівні тестування ви знаєте? Що таке піраміда тестування?
- Що означають принципи FIRST?
- Як створити тестовий проєкт і підключити до нього бібліотеку класів?
- Для чого призначені атрибути
[TestClass],[TestMethod],[DataRow],[TestInitialize]? - Опишіть шаблон Arrange–Act–Assert.
- Які твердження MSTest ви знаєте? Як перевірити виняток?
- Як порівняти дійсні числа в тесті?
- Що таке класи еквівалентності та граничні значення?
- Чим відрізняються заглушка, фейк і мок?
- Як протестувати код, що залежить від поточного часу?
- Опишіть цикл TDD.
- Що показує покриття коду? Чому 100 % покриття не є метою?
- Що таке рефакторинг? Що таке характеризаційні тести?
- Які «запахи коду» ви знаєте? Які рефакторинги їх усувають?
Корисні посилання
- Тестування в .NET: https://learn.microsoft.com/dotnet/core/testing/
- Рекомендації щодо модульного тестування: https://learn.microsoft.com/dotnet/core/testing/unit-testing-best-practices
- MSTest: https://learn.microsoft.com/dotnet/core/testing/unit-testing-mstest-intro
- Test Explorer: https://learn.microsoft.com/visualstudio/test/run-unit-tests-with-test-explorer
- Покриття коду: https://learn.microsoft.com/visualstudio/test/using-code-coverage-to-determine-how-much-code-is-being-tested
- Рефакторинг у Visual Studio: https://learn.microsoft.com/visualstudio/ide/refactoring-in-visual-studio