10

使用 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);
  }
}
4

1 回答 1

4

那是不可能的。我建议不要使用数据驱动 MSpec,如果您需要行测试或组合测试(以及描述行为时的 MSpec),请使用 NUnit 或 MbUnit。

跟进:Aeden,TestCases/RowTests 在 MSpec 中是不可能的,而且很可能永远不会。请在这种情况下使用 NUnit,因为它是完成这项工作的最佳工具。当您想要指定系统行为时,MSpec 表现出色(提交订单时 => 应通知履行服务)。对于带有 MSpec 的 TestCases,您需要为每个可能导致类爆炸的输入组合创建一个上下文。

当您想要一个易于学习的健全的测试结构时,MSpec 也很棒。MSpec 不是从一张白纸开始(想想 NUnit 的 [Test] 方法),而是为您提供了一个模板(Establish、Because、It),您可以围绕它构建您的规范。将此与您给出的示例进行对比,其中将 Arrange、Act 和 Assert 组合成一行代码。

于 2011-05-25T22:03:25.737 回答