
Модульне тестування та xUnit
Фреймворк xUnit, тестові випадки, assertions, Moq, FluentAssertions, покриття коду, принципи TDD
1Що таке xUnit у контексті .NET?
Що таке xUnit у контексті .NET?
Відповідь
xUnit — це фреймворк для модульного тестування з відкритим кодом для .NET, натхненний JUnit та NUnit. Він використовує атрибути на кшталт [Fact] для простих тестів та [Theory] для параметризованих тестів. xUnit заохочує найкращі практики, як-от ізоляцію тестів (кожен тест створює новий екземпляр тестового класу), та уникає спільного стану через традиційні методи Setup/Teardown.
2Яка різниця між [Fact] та [Theory] у xUnit?
Яка різниця між [Fact] та [Theory] у xUnit?
Відповідь
[Fact] позначає простий тест, що виконується один раз без параметрів, тоді як [Theory] позначає параметризований тест, що виконується кілька разів із різними значеннями, наданими через [InlineData], [MemberData] або [ClassData]. Використання [Theory] дозволяє уникнути дублювання коду під час тестування кількох схожих сценаріїв із різними даними.
3Як використовувати [InlineData] разом із [Theory] у xUnit?
Як використовувати [InlineData] разом із [Theory] у xUnit?
Відповідь
[InlineData] надає дані безпосередньо в атрибуті для тесту [Theory], дозволяючи запускати один і той самий тест із різними значеннями. Кожен атрибут [InlineData] представляє окремий тестовий випадок. Цей підхід ідеальний для тестування кількох простих сценаріїв без створення окремих класів даних, зменшуючи boilerplate-код.
Яка головна перевага Moq у модульному тестуванні .NET?
Як налаштувати mock за допомогою Moq, щоб метод повертав конкретне значення?
+17 питань зі співбесід
Інші теми співбесід .NET
Основи C#
LINQ & Delegates
Основи мови C#
Основи ASP.NET Core
Життєвий цикл запиту в ASP.NET Core
Configuration & Settings
Життєвий цикл застосунку
Dependency Injection
Entity Framework Core
Minimal APIs
Розробка Web API
Async в ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Серіалізація JSON
Entity Framework Core просунутий
Розширені можливості C#
Clean Architecture
Logging, Monitoring & Observability
Інтеграційні тести
Docker & Containerization
Керування пакетами NuGet
Memory Management & GC
Реактивне програмування
Async/await і патерни
.NET Design Patterns
Оптимізація продуктивності
Безпека та Best Practices
SignalR і реальний час
Архітектура мікросервісів
Опануй .NET для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно