单元测试:前端代码测试 2

三 测试 工具

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(){

     })
})
原文地址:https://www.cnblogs.com/poptest/p/5124696.html