5

我将在业余时间编写一个简单的 HTML5 + JavaScript (jQuery) 应用程序,以跟上最新的 Web 技术(在工作中它是更高级的 C# 后端东西)。

我想以过去十年左右的方式进行开发,即 TDD 风格。

作为 HTML/JavaScript 中的 TDD/BDD/AcceptanceTDD 世界的新手,我的问题是:是否有一个很棒的框架或类似的框架可以在浏览器中针对网页编写测试(对许多浏览器的开箱即用支持)一个明确的加号)?

我想使用 JavaScript 的原因有两个。1. 我想学习更多 JavaScript,以及 2. 我想在测试中使用与开发相同的语言。

否则,我可以简单地使用我的 C# 技能并使用 Selenium、WatiN 或类似的框架。

我在 MSDN 找到了JasmineQUnit使用 jQuery的本土解决方案,但对流程和复杂性没有感觉,因此非常欢迎推荐和第一手经验。

4

5 回答 5

8

JS Test Driver是我现在正在阅读的 O'Reilly 的 Javascript TDD 书推荐的框架。我实际上还没有机会玩它,但是:

  • 写过JS测试书的大佬推荐
  • 它有一个非常好的功能集(跨多个浏览器运行的自动化测试是关键)
  • 它来自谷歌(爱他们或恨他们,他们有很多聪明的 JS 人在那里工作)

所以至少我认为值得一试。

于 2010-12-19T18:18:59.127 回答
4

在这一点上,我推荐Jasmine。我已经在几个项目中成功使用了它。我并没有真正遇到过太多令人沮丧的情况,即我无法完成某些事情(与其他工具不同)。它可以设置为不同的配置,具体取决于您的偏好——它可以像在浏览器中打开页面一样简单,也可以动态地“提供”。

有几十种通用工具——到目前为止——没有明显的赢家。我已经尝试了很多,而且——正如 John Resig 所指出的——创建一个简单的测试框架并没有那么复杂。但是添加一些工具以使其方便是很重要的。Jasmine 是我用过最全的一款,但并不臃肿。

重要注意事项:

  • 设置:不要采用开箱即用的工具
  • 风格:在其他测试工具的上下文中使用对您有意义的工具。例如,如果您使用 BDD 工具,请查找 BDD Javascript 框架。这可能是框架中最大的差异——不妨选择一个具有您喜欢的语法的框架。
  • 跨浏览器:测试应该跨浏览器工作
  • 自动化:您应该能够在一个或多个浏览器中编写测试运行脚本
  • 测试基于时间的代码——如果您的 Javascript 具有与时钟相关的行为(如在动画中),那么拥有一个可以促进这一点的测试框架很好
  • 模拟:茉莉花有一个很好的模拟支持,真的很有帮助

您确实不需要将 Selenium 用于简单的单元测试——它使配置复杂化,并且是一个比简单的单元测试框架更难的编程模型。

于 2011-03-17T05:31:57.837 回答
2

我已经为此苦苦挣扎了很多。我认为 Selenium 是您最好的选择,尤其是因为听起来您以前使用过它。JS 的其他内容主要是单元测试。

为了不减少 machineghost 的回答,JS Test Driver 非常适合单元测试。

于 2010-12-19T18:23:24.480 回答
2

我最终使用了 QUnit,因为我发现只需将 PUT(被测页面)插入到一个<iframe>.

这样,除了浏览器本身(逻辑 100% 驻留在客户端)和任何文本编辑器之外,我不需要任何其他外部依赖项。

于 2011-01-04T20:17:04.853 回答
0

Turboframework 使用 javascript、jasmine、selenium 并使用 node 运行。您可以在不到 10 分钟的时间内创建一个测试项目并运行 Web 自动化测试。为避免重复已有的文档,这里是快速入门指南的链接:

https://turboframework.org/en/blog/2021-03-03/automate-your-web-application-tests-in-less-than-ten-minutes

于 2021-12-28T10:42:44.720 回答