2011-05-25 96 views
10

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

http://www.planetgeek.ch/2013/05/26/rowtest-theory-testdata-support-for-machine-specifications/ – Mohsen 2017-07-04 06:01:16

回答

4

这是不可能的。我建议不要使用数据驱动MSpec,如果需要行测试或组合测试(和MSpec描述行为),则使用NUnit或MbUnit。

后续:Aeden,TestCases/RowTests不可能与MSpec和可能永远不会。请使用NUnit来处理这种情况,因为它是工作的最佳工具。当您想要指定系统行为时(当提交订单=>应通知履行服务时),MSpec出色。对于使用MSpec的TestCases,您需要为每个可能导致课堂爆炸的输入组合创建一个上下文。

当你想拥有一个简单易学的理性测试结构时,MSpec也非常棒。 (想想NUnit的[Test]方法),MSpec为您提供了一个模板(Establish,Because,It),您可以根据这些模板构建您的规范。将此与您在排列,行为和声明组合到一行代码中的示例对比。

+0

对不起,如果这似乎太低级别,但我仍然有同样的问题我在我的后续问题中。你如何定义“系统行为”?它是否向外部客户端(例如用户,另一个系统)提供行为 – Aeden 2011-06-05 17:06:18

+0

@Aeden:他表示它代表一个可执行文件和人类可读文档,它描述了您的软件(系统)部分行为的方式。 – Mohsen 2017-07-04 05:35:44

相关问题