【问题标题】:Which BDD framework for JavaScript do you use?您使用哪种 JavaScript 的 BDD 框架?
【发布时间】:2009-11-23 17:34:04
【问题描述】:
我正在使用 ExtJS 框架开发大型应用程序。因为它增长得太快了,我意识到这可能是开始做测试的时候了。
我想使用 BDD 技术,我在周围找到了几个用于 JavaScript 的 BDD 框架(Screw.Unit、JSpec、JSSpec),但我仍然不确定该选择哪一个。有一些关于这个主题的文章,但我对你自己的经验/建议更感兴趣。
所以我的问题是:
- 您使用哪一种?为什么?
- 欢迎任何其他提示/提示。
- 您是否将 Selenium 与 BDD 测试一起使用?
- 您是否使用任何其他技术?
【问题讨论】:
标签:
javascript
testing
extjs
bdd
【解决方案2】:
我使用 buster.js 是因为我使用 node.js 以及客户端 javascript 进行开发。它使用单个 API 处理这两种情况。文档仍然缺乏,但我真的很喜欢对异步测试的支持。
Buster 也可以以与 Selenium 的 WebDriver 类似的方式使用 - 您可以将各种浏览器从属于 buster“服务器”并同时在所有这些浏览器中运行测试。
【解决方案3】:
功能性网络测试有几个挑战。测试往往是......
- 运行缓慢(http 请求很慢,dom 遍历也可能很慢)
- 写得很慢(写一个测试,启动应用程序,运行测试,意识到你犯了一个错误,重新开始)
- 难以阅读(xpath、css 选择器等)
- 脆弱(与 HTML 紧密耦合时)
- 维护成本高(如果您不使用抽象层,例如页面对象模式)
- 不切实际(在假浏览器中运行时)
出于这些原因,我首选的堆栈是
- JavaScript - 开发时间很快,因为没有编译时间
- CasperJS 或 Zombie JS - 非常快,基于 webkit(Safari 和 Chrome [目前])
- Yadda for true BDD - 使测试易于阅读并提供抽象层,减少脆弱性和维护
此堆栈的缺点是您仅在 webkit 中进行测试,而不是 firefox、IE 或 Chrome(当 Google 迁移到 Blink 时)