Описание тега autofixture

AutoFixture - это библиотека с открытым исходным кодом для.NET, предназначенная для минимизации фазы "Упорядочить" ваших модульных тестов. Его основная цель - позволить разработчикам сосредоточиться на том, что тестируется, а не на том, как настроить тестовый сценарий, за счет упрощения создания графов объектов, содержащих тестовые данные.

Вступление

AutoFixture призван сделать разработку через тестирование более производительной, а модульные тесты - более безопасными для рефакторинга. Это достигается за счет устранения необходимости ручного кодирования анонимных переменных как части этапа настройки фиксации теста. Помимо других функций, он также предлагает общую реализацию шаблона построителя тестовых данных.

Обзор

При написании модульных тестов обычно необходимо создать некоторые объекты, которые представляют начальное состояние теста. Часто API заставляет вас указывать гораздо больше данных, чем вам действительно нужно, поэтому вы часто в конечном итоге создаете объекты, которые не влияют на тест, просто для компиляции кода.

AutoFixture может помочь, создав для вас такие анонимные переменные. Вот пример:

[Test]
public void Echo_WithAnonymousInteger_ReturnsSameInteger()
{
    // Arrange
    Fixture fixture = new Fixture();
    int expectedNumber = fixture.Create<int>();
    MyClass sut = fixture.Create<MyClass>();

    // Act
    int result = sut.Echo(expectedNumber);

    // Assert
    Assert.AreEqual(expectedNumber, result, "The method did not return the expected number");
}

Этот пример иллюстрирует основной принцип AutoFixture:

AutoFixture может создавать значения практически любого типа без необходимости явно определять, какие значения следует использовать.

Номер expectedNumber создается призывом к Fixture.Create<T>, который создаст обычное целочисленное значение, избавляя вас от необходимости явно его указывать.

В этом примере также показано, как AutoFixture можно использовать в качестве фабрики SUT, которая создает реальную тестируемую систему.

Ресурсы

Проект AutoFixture размещен на GitHub по адресу https://github.com/AutoFixture, где вы можете найти больше примеров кода и документации.