我正在查看 SpecFlow 示例,它的 MVC 示例包含几个用于测试的替代方案:
- 基于控制器生成的验证结果的验收测试;
- 使用 MvcIntegrationTestFramework 进行集成测试;
- 使用 Selenium 进行自动化验收测试;
- 当提示测试人员手动验证结果时进行手动验收测试。
我必须说我对 SpecFlow 示例的编写效果印象深刻(下载后我设法在几分钟内运行它们,只需要配置数据库并安装 Selenium 远程控制服务器)。查看测试替代方案,我可以看到它们中的大多数相互补充而不是替代方案。我可以想到这些测试的以下组合:
- 控制器以 TDD 风格进行测试,而不是使用 SpecFlow(我认为 Given/When/Then 类型的测试应该应用在更高的端到端级别;它们应该为各个组件提供良好的代码覆盖率;
- MvcIntegrationTestFramework 在开发会话期间运行集成测试时很有用,这些测试也是日常构建的一部分;
- 尽管基于 Selenium 的测试是自动化的,但它们速度很慢,主要是在 QA 会话期间启动,以快速验证页面和站点工作流程中没有损坏的逻辑;
- 提示测试人员确认结果有效性时的手动验收测试主要是验证页面外观。
如果您在 Web 开发中使用 SpecFlow、Cucumber 或其他 BDD 验收测试框架,您能否分享您在不同测试类型之间进行选择的实践。
提前致谢。