您使用哪种 JavaScript BDD 框架?

发布于 2024-08-12 04:10:08 字数 303 浏览 3 评论 0原文

我正在使用 ExtJS 框架开发大型应用程序。因为它增长得太快,我意识到这可能是开始做测试的时候了。

我想采用 BDD 技术,我发现了几个 JavaScript 的 BDD 框架(Screw.Unit、JSpec、JSSpec),但我仍然不确定该选择哪一个。有一些关于这个主题的文章,但我对你自己的经验/建议更感兴趣。

所以我的问题是:

  • 您使用哪一种?为什么?
  • 欢迎任何其他提示/技巧。
  • 您是否将 Selenium 与 BDD 测试一起使用?
  • 你还使用其他技术吗?

I'm developing large application using ExtJS framework. Because it grows too fast, I realized that this might be the time to start doing tests.

I want to go for BDD technique, I found several BDD frameworks for JavaScript around (Screw.Unit, JSpec, JSSpec), but I'm still not sure which one to choose. There are some articles about this topic, but I'm more interested in your own experiences/suggestions.

So my questions are:

  • Which one do you use and why?
  • Any other hints/tips are welcome.
  • Do you use Selenium alongside a BDD testing?
  • Do you use any other technique?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黯然 2024-08-19 04:10:08

是的,我们使用硒。

我编写了一个单元测试框架(嗯,大部分是功能性的,不完全可插入的),我已经使用过几次了。这类主题不断出现,所以也许我应该完成它...网址是 http:// code.google.com/p/jasproject/

We use Selenium, yes.

I wrote a Unit Test framework (well, most of one, functional, not entirely pluggable) that I have used a few times. These sorts of topics keep coming up so maybe I should finish it... the url is http://code.google.com/p/jasproject/

靖瑶 2024-08-19 04:10:08

我使用buster.js,因为我使用node.js 和客户端javascript 进行开发。它使用单个 API 来应对这两种情况。文档仍然缺乏,但我真的很喜欢对异步测试的支持。

Buster 的使用方式也与 Selenium 的 WebDriver 类似 - 您可以将各种浏览器从属于一个 Buster“服务器”,并同时在所有这些浏览器中运行测试。

I use buster.js because I develop in node.js as well as client-side javascript. It copes with both scenarios using a single API. The documentation is still lacking, but I really like the support for asynchronous testing.

Buster can also be used in a similar way to Selenium's WebDriver - you can slave various browsers to a buster "server" and run your tests in all those browsers at the same time.

月下客 2024-08-19 04:10:08

功能性 Web 测试面临一些挑战。测试往往......

  1. 运行缓慢(http请求很慢,dom遍历也可能很慢)
  2. 编写缓慢(编写测试,启动应用程序,运行测试,意识到你犯了一个错误,重新开始)
  3. 很难读取(xpath、css 选择器等)
  4. 脆弱(当与 HTML 紧密耦合时)
  5. 维护成本高昂(如果不使用抽象层,例如页面对象模式)
  6. 不切实际(在假浏览器中运行时)

由于这些原因,我的首选堆栈是

  1. JavaScript - 开发时间很快,因为没有编译时间
  2. CasperJS 或 Zombie JS - 非常快,基于 webkit(Safari 和 Chrome [目前])
  3. Yadda for true BDD - 使测试变得简单读取并提供抽象层,减轻脆弱性和维护

该堆栈的缺点是您只能在 webkit 中进行测试,而不是在 Firefox、IE 或 Chrome 中进行测试(当 Google 转向 Blink 时)

Functional web testing has several challenges. Tests tend to be...

  1. Slow to run (http requests are slow, dom traversal can be slow too)
  2. Slow to write (write a test, start the app, run the test, realise you made a mistake, start again)
  3. Hard to read (xpaths, css selectors etc)
  4. Brittle (when tightly coupled to your HTML)
  5. Expensive to maintain (if you don't use an abstraction layer such as the page object pattern)
  6. Unrealistic (when run in a fake browser)

For these reason my preferred stack is

  1. JavaScript - development time is fast since there's no compilation time
  2. CasperJS or Zombie JS - very fast, webkit based (Safari & Chrome [for now])
  3. Yadda for true BDD - Makes the test easy to read and provides an abstraction layer, mitigating the brittleness and maintenance

Downsides of this stack is that you're only testing in webkit, not firefox, IE or Chrome (when Google move to Blink)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文