Как писать тесты на Fluentassertions C#

FluentAssertions — это библиотека для написания утверждений в тестах на C#, которая предлагает более читабельный и выразительный синтаксис по сравнению с традиционными методами утверждений. Вот как можно использовать FluentAssertions для написания тестов в C#.

Установка FluentAssertions

Для начала вам нужно установить FluentAssertions в ваш проект. Вы можете сделать это через NuGet Package Manager или с помощью команды в консоли:

Install-Package FluentAssertions

Пример использования FluentAssertions

Вот пример, который демонстрирует, как писать тесты с использованием FluentAssertions. Предположим, у вас есть метод, который складывает два числа:

public class Calculator {

    public int Add(int a, int b)

    {

        return a + b;

    }

}

Теперь мы напишем тесты для этого метода, используя NUnit и FluentAssertions.

Пример теста

using FluentAssertions;

using NUnit.Framework;

[TestFixture]

public class CalculatorTests

{

private Calculator _calculator;

[SetUp]

public void SetUp()

{

_calculator = new Calculator();

}

[Test]

public void Add_TwoPositiveNumbers_ReturnsSum()

{

// Arrange

int a = 2;

int b = 3;

// Act

int result = _calculator.Add(a, b);

// Assert

result.Should().Be(5);

}

[Test]

public void Add_NegativeAndPositiveNumber_ReturnsCorrectSum()

{

// Arrange

int a = -2;

int b = 3;

// Act

int result = _calculator.Add(a, b);

// Assert

result.Should().Be(1);

}

[Test]

public void Add_TwoNegativeNumbers_ReturnsSum()

{

// Arrange

int a = -2;

int b = -3;

// Act

int result = _calculator.Add(a, b);

// Assert

result.Should().Be(-5);

}

}

Объяснение кода

  1. Импортирование пространств имен: В начале файла мы импортируем необходимые пространства имен для FluentAssertions и NUnit.

  2. Создание тестового класса: Мы создаем класс CalculatorTests, который будет содержать наши тесты. Он помечен атрибутом [TestFixture], что указывает NUnit, что это класс с тестами.

  3. Инициализация: В методе SetUp мы инициализируем объект Calculator, который будет использоваться в тестах.

  4. Написание тестов:

    • Каждый тест помечен атрибутом [Test].

      В каждом тесте мы используем Should() от FluentAssertions для выполнения утверждений, что делает код более читаемым.

      Мы проверяем, что результат метода Add соответствует ожидаемому значению с помощью Should().Be(expectedValue).

Дополнительные возможности FluentAssertions

FluentAssertions предоставляет множество других возможностей для проверки различных типов данных и условий. Вот некоторые из них:

  • Проверка коллекций:

  • var list = new List<int> { 1, 2, 3 };
  • list.Should().Contain(2);
  • list.Should().HaveCount(3);
  • Проверка строк:

  • string message = «Hello, World!»;
  • message.Should().StartWith(«Hello»).And.EndWith(«World!»);
  • Проверка объектов:

  • var person = new Person { Name = «John», Age = 30 };
  • person.Should().Match<Person>(p => p.Name == «John» && p.Age == 30);

Заключение

FluentAssertions делает ваши тесты более выразительными и легкими для чтения. С его помощью вы можете писать утверждения, которые выглядят как естественный язык, что улучшает поддержку и понимание тестов.

 

0
Нет комментариев. Ваш будет первым!