Введение

  • Модульное тестирование — это шаблон проектирования программного обеспечения, который используется для тестирования мельчайших компонентов на этапе разработки программного обеспечения.
  • Модульное тестирование используется для проверки функциональности, которая должна создать ожидаемый результат перед переходом в производственную среду и группу контроля качества.
  • Это помогает обнаруживать проблемы на ранней стадии цикла разработки программного обеспечения.
  • Существует множество инструментов модульного тестирования, которые уже присутствуют при использовании .NET Framework, таких как xUnit, NUnit и многие другие.

xUnit

  • xUnit — это бесплатная среда модульного тестирования с открытым исходным кодом для разработки .NET.
  • xUnit имеет множество функций, позволяющих написать чистый и хороший модульный тест.
  • Он имеет множество атрибутов, таких как Fact, Theory и многие другие, для эффективного и чистого написания тестовых случаев, а также предоставляет механизм для создания нашего собственного атрибута.

Атрибуты xUnit

  • Атрибут [Fact] используется xUnit в .NET, который идентифицирует метод модульного теста.
[Fact]
public void EvenNumberTest()
{
    //Arrange
    var num = 6;
    //Act
    bool result = Mathematics.IsEvenNumber(num);
    //Assert
    Assert.True(result);
}
  • Атрибут [Theory] используется для предоставления параметров методу тестирования.
[Theory]
[InlineData(5)]
public void OddNumberTest(int num)
{
    //Act
    bool result = Mathematics.IsOddNumber(num);
    //Assert
    Assert.True(result);
}

Тестовый шаблон

Arrange-Act-Assert — отличный способ писать понятные и более читаемые модульные тесты.

  1. Упорядочить

В разделе аранжировки мы настраиваем и объявляем некоторые входные данные и переменную конфигурации.

  1. Действовать

В разделе Act размещаем основные вещи и функционал вроде вызовов методов, вызовов API и что-то в этом роде.

  1. Подтвердить

Assert проверяет ожидаемые результаты и проверяет, будут ли они соответствовать нашим функциональным требованиям или нет.

Начнем с практического примера использования .NET Core 6 и xUnit.

Шаг 1)

Откройте код VS и создайте один каталог «UnitTesting», а затем создайте там новое решение, используя приведенную ниже команду.

dotnet new sln

Шаг 2)

Создайте новый проект библиотеки классов TestDemo.

dotnet new classlib -o TestDemo

Шаг 3)

Затем перейдите в каталог, где находится файл решения, и добавьте проект TestDemo в файл решения.

dotnet sln add .\TestDemo\TestDemo.csproj

Шаг 4)

Позже создайте проект xUnit TestDemo.Tests.

dotnet new xunit -o TestDemo.Tests

Шаг 5)

Добавьте проект TestDemo.Tests xUnit в файл решения.

dotnet sln add ./TestDemo.Tests/TestDemo.Tests.csproj

Шаг 6)

Добавьте ссылку на проект TestDemo в проект TestDemo.Tests, связанный с xUnit.

dotnet add ./TestDemo.Tests/TestDemo.Tests.csproj reference ./TestDemo/TestDemo.csproj

Шаг 7)

Структура проекта

Шаг 8)

Создайте один класс математики в проекте TestDemo, как показано ниже.

Шаг 9)

Затем создайте класс UnitTest1 в TestDemo.Tests, в котором мы пишем разные тестовые случаи.

Шаг 10)

Я предлагаю вам установить .NET Core Test Explorer для тестового случая.

Шаг 11)

Наконец, вы можете запустить свой тестовый пример, как показано ниже, и вы можете вывести все свои тестовые примеры, если они будут выполнены правильно, тогда зеленый щелчок появится перед именем тестового примера и под атрибутом [Fact] в классе Mathematics. и если ожидаемый результат не создается приложением, то крестик ставится перед тестовым примером и под атрибутом [Факт].

Заключение

Мы обсудили, что такое модульный тестовый пример и его цель, а позже представили xUnit, атрибуты и некоторые шаблоны. А также пошаговая практическая реализация с использованием .NET Core 6 в VS Code.