【问题标题】:Is it possible to create data driven tests with MSpec?是否可以使用 MSpec 创建数据驱动测试?
【发布时间】:2011-05-25 08:11:19
【问题描述】:

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

【问题讨论】:

标签: tdd mspec


【解决方案1】:

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

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

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

【讨论】:

  • 对不起,如果这看起来太低了,但我仍然有我在后续问题中提出的相同问题。您如何定义“系统行为”?是否提供给外部客户端(例如用户、另一个系统)的行为
  • @Aeden:他的意思是它代表了一个可执行且人类可读的文档,描述了您的 [part of] 软件(系统)的行为方式。
猜你喜欢
  • 2023-03-24
  • 2011-09-20
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
相关资源
最近更新 更多