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 по github.com/AutoFixture, где можно найти более пример кода и документацию.