1

我的设置如下:

  • 使用 MVVM 模式编写 WPF 客户端
  • 一组单元测试
  • 一组 SpecFlow 场景

在创建 SpecFlow 场景时,我首先绘制了一个状态机图,以查看用户交互的所有可能排列以及从一种状态到另一种状态的需求。然后我创建一个所有可能场景的列表。

例如:

  • 用户按是 -> 上传文档 -> 删除文档 -> 点击提交
  • 用户按是 -> 上传文档 -> 点击提交
  • 用户按下是 -> 点击提交

这可以确保我们测试所有可能的场景并且不会错过任何场景。然而,这是一个乏味的过程,如果需求发生变化,它就会变得很成问题。

我想知道是否有一个框架可以从您的状态机创建您的场景,因此如果从状态机中删除该步骤,它会自动重新创建您的场景。

4

2 回答 2

7

BDD 场景工具通常旨在启用、捕获和自动化开发团队和业务利益相关者之间的对话。你正在做的是测试。

我建议不要使用 BDD 工具,而是编写自己的工具,或者在“测试框架”下而不是在 BDD 和 SpecFlow 标签下寻找其他人的工作。

BDD 不适用于详尽的测试。相反,它最适用于说明应用程序行为的一些场景。这有助于开发人员确保他们了解业务问题,并表明他们的代码支持解决方案。

If you use a BDD tool for this, you'll start finding that the scenarios you create are really hard to maintain. English can't be refactored in the same way as code. Your state machine may even be better off under unit test (or a lower-level BDD tool - I just use NUnit).

于 2012-10-25T15:49:54.133 回答
1

If you are really into generating test cases from a state machine, I'd suggest that you have a look into "Model Based Testing" tools.

In the .NET world, spec explorer allow you to do that: SpecExplorer 2010

于 2012-11-03T01:03:53.143 回答