集成 Karma 和 Jasmine 进行单元测试
来源:互联网 发布:菜鸟物流打印软件 编辑:程序博客网 时间:2024/05/16 15:58
1、简介
单元测试:对每一个function进行独立测试,验证数据能否正确流入、流出
Jasmine:编写测试脚本
Karma:驱动测试脚本
2、准备工作
安装node.js,初始化 npm 包管理,创建 package.json 项目管理文件。
3、安装Karma
(1)在项目中安装karma
命令 E:\project\karmatest> npm i -D karma
(2)全局安装karma-cli
命令 E:\project\karmatest> npm i -g karma-cli
4、安装 Jasmine 和 chrome-launcher(浏览器的适配器)
命令 E:\project\karmatest> npm i -D jasmine-core karma-jasmine karma-chrome-launcher
5、创建 karma 配置文件
(1)初始化karma,配置项除了路径都填默认值即可,完成后即生成karma.conf.js文件
(2)启动 karma
命令:E:\project\karmatest> karma start
启动后,karma会自动打开chrome浏览器,出现如下画面,点击debug按钮,然后打开控制台,由于还未编写测试用例,此刻控制台中应该还没有打印值。
6、用 Jasmine 编写测试用例
(1)在项目目录下创建一个名为 test 的子文件夹来保存测试用例。然后在 test 文件夹中创建一个 unit 的文件夹来保存单元测试用例。
(2) 在项目目录下,创建一个名为 src 的子文件夹来保存我们的应用代码,在其中创建一个名为 add.js 的脚本文件,我们将测试它的工作是否正确。
(3) add.js代码:
function add(a, b){ return a + b;}
(4) 针对add方法写两个测试用例,保存到 ./test/unit/add.spec.js 文件中,一般我们约定测试用例的文件名以 .spec.js 为结尾。
describe('add方法的测试用例', function(){ it('用例1,这个用例必须成功', function(){ var result = add( 2, 3 ); expect( result ).toBe( 5 ); }); it('用例2,这个用例必须失败', function(){ var result = add( 2, 3 ); expect(result).toBe( 6 ); })});
(5) 确认在我们 karma 的配置文件karma.conf.js中,包含了我们的测试用例。
// list of files / patterns to load in the browser files: [ 'test/**/*.spec.js' ],
(6)用第5步(2)的方式启动karma,已经启动的刷新刚刚的debug页面即可。观察控制台打印值。
附:Jasmine 常用语法,转自:http://blog.csdn.net/huangpb123/article/details/70168221
- 集成 Karma 和 Jasmine 进行单元测试
- Karma和Jasmine-单元测试
- 在WebStorm中集成Karma+jasmine进行前端单元测试
- Karma和Jasmine自动化单元测试
- Karma和Jasmine自动化单元测试
- 通过缓存安装Karma和Jasmine并进行AngularJS单元测试
- karma 自动化单元测试 Jasmine
- 安装和使用Karma-Jasmine进行自动化测试
- Karma+Jasmine+istanbul+webpack自动化单元测试
- web学习笔记02-基于Karma和Jasmine的AngularJS单元测试
- karma +jasmine+karma-coverage
- 使用 Karma 和 Jasmine 测试 AngularJs
- 基于Karma,Jasmine的AngularJS,RequireJS单元测试配置笔记
- 手把手教你如何安装和使用Karma-Jasmine
- 手把手教你如何安装和使用Karma-Jasmine
- JavaScript单元测试:将Jasmine集成到JsTestDriver
- ionic之如何应用karma进行单元测试
- webstorm入门4-karma/jasmine/coverage/coveralls/phantomjs/travis-ci单元测试
- laravel post方法请求失败
- cocos项目如何使用Android studio打包
- Ajax入门笔记
- POJ 2531 Network Saboteur
- 实现ViewPager懒加载的三种方法
- 集成 Karma 和 Jasmine 进行单元测试
- Android运行时ART执行类方法的过程分析
- iOS 计算生日转化为年龄的方法
- 手机号码验证 js input
- 剑指offer--打印1到最大n位数
- 【二】带你一起走进Activity启动模式的大门
- oracle 本地连接适配器错误无法连接plsql
- solr4.10.2及中文分词器的使用
- 初识SVN