使用SpecFlow或任何其他框架测试用户交互的所有可能排列

Vit*_*lij 1 .net c# tdd bdd specflow

我的设置如下:

  • WPF客户端使用MVVM模式写入
  • 一组单元测试
  • 一套SpecFlow风景如画

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

例如:

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

这样可以确保我们测试所有可能的场景,不要错过任何场景.然而,这是一个繁琐的过程,如果需求发生变化,则会出现相当大的问题.

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

Lun*_*ore 7

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

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

BDD在详尽的测试中效果不佳.相反,它最适合用于说明应用程序行为的几个场景.这有助于开发人员确保他们了解业务问题,并证明他们的代码支持该解决方案.

如果你使用BDD工具,你会发现你创建的场景真的很难维护.英语不能以与代码相同的方式重构.您的状态机甚至可能在单元测试(或更低级别的BDD工具 - 我只使用NUnit)下更好.