三 测试 工具
1JSTD(Javascript Test Driver)
是一个最早的C/S测试工具,来自Google,基于JAVA编写,跨平台,使用命令行控制,还有很好的编辑器支持,最常用于eclipse。不过它无法显示测试对象的设备及浏览器版本,只有浏览器名是不够的。另外JSTD已经慢慢不再活跃,它的早正如它的老。
2.Karma
它使用Nodejs构建,因此跨平台,还支持PhantomJS浏览器,还支持多种框架,包括以上介绍的Jasmine、Qunit和Mocha。一次可以在多个浏览器及设备中进行测试,并控制浏览器行为和测试报告。虽然它不支持Nodejs的测试,不过没什么影响,因为Nodejs并不依赖于浏览器。
3.TestSwarm 出自jQuery之父John Resig之手,看来jQuery的强大果然不是偶然的,在测试方面非常到位,各种工具齐全。它最特别的地方在于所有测试环境由服务器提供,包括各种版本的主流浏览器以及iOS5的iphone设备,不过目前加入已经受限。
4.Buster 其作者之一就是Christian Johansen。和Karma很像,也使用Nodejs编写跨平台并且支持PhantomJS,一次测试所有客户端。更重要的是支持Nodejs的测试,同样支持各种主流测试框架。不过目前还在Beta测试中,很多bug而且不能很好的兼容Windows系统。它的目标还包括整合Browser Stack。
四、karma+jamine测试
单元测试配置 karma init; 设置: (1)选择框架 jasmine/mocha/qunit/ requirejs //(2):设置自定义配置文件 (3):第三方代码(端对端测试需要引入 ng-scenario.js) (4): 测试特有代码 (5):browser[]选择相应的测试浏览器 (6):预处理器 coffeejs/coverage/eember (7):proxies{“”} 在端对端测试中 起作用 (8)配置coverage
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'html',
dir: 'mytest/coverage/'
}
karma start 就能开启测试
语法: 单元测试
describe('描述',function(){
beforeEach(function(){
})
it('描述',function(){
expect(true).toBe(true);//基本表达式
//函数
toBe(),not.toBe()//是否相同 ===
toEqual(),//是否相同 == 基本数据类型中 toBe()和equal 没有区别
toMatch(),.not.toMatch();//匹配正则
toBeDefined();//是否被定义
toHaveBeenCalled();//是否被调用
spyOn()//监控某个函数
}),
afterEach(function(){
})
})