C#:
Письмо тестів
Як:
Розробники C# зазвичай використовують фреймворки NUnit або xUnit для написання тестів через їхню гнучкість і широкий набір функцій. Ось базовий приклад використання NUnit для тестування простої функції додавання:
- Встановіть NUnit і NUnit3TestAdapter через менеджер пакетів NuGet або .NET CLI:
dotnet add package NUnit
dotnet add package NUnit3TestAdapter
Створіть проект бібліотеки класів C#, якщо ви ще цього не зробили.
Напишіть просту функцію для тестування. Наприклад, метод додавання в класі
Calculator
:
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
}
- Напишіть тестовий клас використовуючи NUnit:
using NUnit.Framework;
namespace CalculatorTests
{
[TestFixture]
public class CalculatorTests
{
[Test]
public void Add_AddsTwoIntegers_ReturnsCorrectSum()
{
// Підготовка
var calculator = new Calculator();
int expected = 5;
// Дія
int actual = calculator.Add(2, 3);
// Перевірка
Assert.AreEqual(expected, actual);
}
}
}
- Запустіть тест використовуючи тестовий раннер вашої ІDE або .NET CLI:
dotnet test
Приклад виводу:
Припускаючи, що ваш тест пройшов, ви повинні побачити подібний вивід:
Test Run Successful.
Total tests: 1
Passed: 1
Total time: 1.2345 Seconds
Використання xUnit:
Якщо ви віддаєте перевагу xUnit, налаштування схоже на NUnit. Ось як ви б переписали приклад тесту для класу Calculator
використовуючи xUnit:
- Встановіть xUnit і xUnit.runner.visualstudio:
dotnet add package xUnit
dotnet add package xUnit.runner.visualstudio
- Напишіть тестовий клас використовуючи xUnit:
using Xunit;
namespace CalculatorTests
{
public class CalculatorTests
{
[Fact]
public void Add_AddsTwoIntegers_ReturnsCorrectSum()
{
// Підготовка
var calculator = new Calculator();
int expected = 5;
// Дія
int actual = calculator.Add(2, 3);
// Перевірка
Assert.Equal(expected, actual);
}
}
}
- Запустіть тест використовуючи .NET CLI або інтегрований тестовий раннер вашої ІDE.
Як NUnit, так і xUnit надають потужні можливості для параметризованого тестування, налаштувань для підготовки/завершення тестів та організації тестів у категорії, роблячи їх незамінними інструментами в наборі інструментів програміста C# для забезпечення якості коду та його функціональності.