我是一个基于 .net 的 Windows 应用程序开发人员,现在是一名 Web 开发人员。在过去的几年里,我试图在一个项目中通过实例来遵循规范的原则。在我参与的最后一个项目中,我们的团队使用带有 MVVM(Model-View-ViewModel) 模式的 WPF,我尝试使用SpecFlow进行测试。(嗯.. SpecFlow 的覆盖率非常低,因为它没有被我们的团队正式采用,我无法花足够的时间在上面。)
现在我们的团队开始将现有的 Windows 应用程序迁移到基于 Web 的应用程序,并决定使用 cucumber.js 作为实现“示例规范”的工具。
当我之前尝试 SpecFlow 时,我做了所有的步骤定义来测试 ViewModel 层而不是 View,这实际上是唯一的方法。我对 cucumber.js 感到困惑的是,大多数示例都演示了如何通过 Web 浏览器(无头浏览器或真实浏览器)测试功能。
如果功能指定特定的 ui 行为,那么访问 DOM 元素并评估其值是有意义的。但是,据我通过示例了解规范,建议在 UI 层下进行测试,而不是直接在 UI 元素下进行测试。
现在似乎大多数现代 Web 应用程序都有 MVC、MVVM(knouckout.js) 等层。我们的 Web 应用程序将使用 Angularjs,这是我的理论。
我想可以使用特性文件——它没有说明任何特定的 UI 控件和行为——在 UI 层的皮肤下进行测试,而不依赖于浏览器的支持。该层将是 angularjs 的模型,而不是 ui 元素。
这种方法是否缺少 cucumber.js 的某些内容或错误?如果我错了,请给我一些见解并纠正我。
提前致谢!