单页应用程序的javascript集成测试
javascript integration testing for one page applications
我目前正在开发一个单页javascript应用程序,服务器端使用Sinatra Ruby,客户端使用Backbone.js、jQuery、jQuery UI。应用程序的主要目的是允许客户查看/编辑不同类型的项目,每个项目视图都是一个或多或少复杂的表单
为了确保一切正常,我计划做:
- 使用QUnit的统一测试
- 功能/集成测试
在这种情况下,您建议使用哪些框架/工具进行集成测试?我从硒开始,但我不太喜欢它。我刚开始研究PhantomJS和CasperJS,它们似乎非常适合导航、点击链接等基本功能。。。
你有什么建议?
你没有说你不喜欢Selenium,但我猜你对JavaScript很有信心,所以我的建议是使用CasperJS作为主要工具。它可以很好地与单页web应用程序配合使用,并配有自己的测试工具。当使用嵌套的wait
子句时,代码有时仍然会变得有点复杂;通过确保在每个测试中不要做太多来处理这个问题,然后如果仍然很复杂,就进行重构。不要忘记测试的设计:如果你的选择器非常复杂,可以考虑在它周围添加一个<span id="xxxx">...</span>
,这样你的测试就可以直接进行了!
您可以将CasperJS与PhantomJS和SlimerJS一起使用。我目前更喜欢SlimerJS,如:
- PhantomJS1.x被困在一个旧的WebKit(相当于Safari5.1和Chrome13)上,所以测试任何更现代的功能都是令人沮丧的
- SlimerJS既可以与Gecko引擎配合使用,也可以直接与您安装的Firefox版本配合使用。这允许您使用额外的插件、安全证书等配置Firefox配置文件
- SlimerJS是用JavaScript编写的,因此如果您有需要,可以更容易地破解
一旦PhantomJS 2.0问世(希望在2013年底左右),或者如果你的网站不依赖任何最新的HTML5 API,你可以运行两次CasperJS,以获得双倍的覆盖率。(顺便说一句,PhantomJS自然是无头的;SlimerJS需要使用Xvfb,这只是Linux或Mac。)
Selenium为您提供的额外功能是您可以控制其他浏览器,尤其是IE。(当然,对于IE,你需要运行一台Windows机器。)Selenium和SlimerJS一样,需要Xvfb是无头的(同样,不包括Windows)。(顺便说一句,支持的浏览器上的Selenium文档已经很久没有更新了,但我假设每个浏览器的后续版本至少都有相同的支持。)
- 用于测试javascript中异步加载的脚本的工具
- Meteor集成测试,在velocity'她的镜子上有茉莉花
- 是否可以测试javascript函数是否是构造函数
- 单页应用程序的javascript集成测试
- 使用jasmine测试JavaScript回调函数
- 测试 JavaScript Zombie 事件处理程序或 DOM 元素
- 测试JavaScript是否符合异常变量名
- 使用 Capybara 和 Minitest 来测试 JavaScript
- 将PHP集成到Javascript中,使用Google API显示地图标记
- 在CakePHP中测试JavaScript
- 将一个简单的html表集成到javascript中
- Javascript代码集成测试
- Javascript 客户端框架与 Rails JSON API - 如何进行集成测试
- Javascript集成测试框架
- 集成测试JavaScript与本地存储交互的正确方法是什么
- 在游戏框架集成测试中禁用HtmlUnit javascript错误
- 执行Javascript的硒UI集成测试的拖放- Java
- 单元测试-如何编写JavaScript集成测试
- 使用Visual Studio和Team City,用单元AND集成测试测试javascript的正确方法是什么
- 在rails应用程序中对Javascript繁重的UI进行集成测试的最佳方法是什么?