Модульные тесты MSTest C#
MSTest — это один из популярных фреймворков для юнит-тестирования в .NET, который позволяет писать и выполнять модульные тесты. В этом ответе мы рассмотрим, как настроить MSTest и написать простые тесты на C#.
Установка MSTest
Если вы используете Visual Studio, MSTest уже включен в большинство шаблонов проектов. Если вам нужно добавить его вручную, это можно сделать через NuGet Package Manager. Для этого выполните следующую команду в консоли:
Install-Package MSTest.TestFramework
Install-Package MSTest.TestAdapter
Пример использования MSTest
Предположим, у вас есть простой класс Calculator, который выполняет операции сложения. Давайте создадим тесты для этого класса.
Пример класса Calculator
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
}
Написание тестов с использованием MSTest
Теперь создадим класс тестов для Calculator.
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace CalculatorTests
{
[TestClass]
public class CalculatorTests
{
private Calculator _calculator;
[TestInitialize]
public void SetUp()
{
_calculator = new Calculator();
}
[TestMethod]
public void Add_TwoPositiveNumbers_ReturnsSum()
{
// Arrange
int a = 2;
int b = 3;
// Act
int result = _calculator.Add(a, b);
// Assert
Assert.AreEqual(5, result);
}
[TestMethod]
public void Add_NegativeAndPositiveNumber_ReturnsCorrectSum()
{
// Arrange
int a = -2;
int b = 3;
// Act
int result = _calculator.Add(a, b);
// Assert
Assert.AreEqual(1, result);
}
[TestMethod]
public void Add_TwoNegativeNumbers_ReturnsSum()
{
// Arrange
int a = -2;
int b = -3;
// Act
int result = _calculator.Add(a, b);
// Assert
Assert.AreEqual(-5, result);
}
}
}
Объяснение кода
Импортирование пространств имен: Мы импортируем пространство имен Microsoft.VisualStudio.TestTools.UnitTesting, которое содержит необходимые атрибуты и классы для написания тестов.
Создание тестового класса: Класс CalculatorTests помечен атрибутом [TestClass], что указывает MSTest, что это класс с тестами.
Инициализация: Метод SetUp помечен атрибутом [TestInitialize], который выполняется перед каждым тестом. Здесь мы создаем экземпляр Calculator.
Написание тестов:
Каждый тест помечен атрибутом [TestMethod].
В каждом тесте мы используем метод Assert.AreEqual(expected, actual) для проверки, что результат соответствует ожидаемому значению.
Запуск тестов
Чтобы запустить тесты, вы можете использовать встроенные средства Visual Studio:
Откройте окно «Test Explorer» (Тесты).
Нажмите «Run All» (Запустить все), чтобы выполнить все тесты в проекте.
Заключение
MSTest — это мощный и простой в использовании фреймворк для юнит-тестирования в .NET. Он позволяет легко организовывать и выполнять тесты, а также предоставляет различные методы для проверки результатов. Вы можете расширять свои тесты, добавляя больше методов, проверок и различных сценариев, чтобы обеспечить надежность вашего кода.