Можно ли создавать тесты с управлением данными с помощью MSpec?

С MSpec можно ли создавать тесты, управляемые данными?

Например, NUnit имеет атрибут TestCase, который допускает несколько случаев, связанных с данными.

[TestFixture]
public class ExampleOfTestCases
{

  [TestCase(1,2,3)]
  [TestCase(3,3,6)]  
  [TestCase(2,2,4)]  
  public void when_adding_two_numbers(int number1, int number2, int expected)
  {
     Assert.That(number1 + number2, Is.EqualTo(expected);
  }
}

Ответ 1

Это невозможно. Я бы посоветовал не водить MSpec с данными, использовать NUnit или MbUnit, если вам нужны тесты строк или комбинаторные тесты (и MSpec при описании поведения).

Последующие действия: Aeden, TestCases/RowTests невозможно с MSpec и, вероятно, никогда не будет. Используйте NUnit для таких случаев, так как это лучший инструмент для этой работы. MSpec выделяется, когда вы хотите указать поведение системы (когда отправленный заказ = > должен уведомить службу исполнения). Для TestCase с MSpec вам необходимо создать контекст для каждой комбинации входов, которые могут привести к взрыву класса.

MSpec также хорош, если вы хотите иметь разумную тестовую структуру, которую легко освоить. Вместо того, чтобы начинать с чистого листа бумаги (подумайте о методах NUnit [Test]), MSpec предоставляет вам шаблон (Install, Because, It), в котором вы можете создавать свои спецификации. Сравните это с примером, который вы указываете, где Arrange, Act и Assert объединены в одну строку кода.