作为一个前端学习单元测试的原因:,一套完备的测试流程不仅能检查我们的代码错误,更主要的是在维护的时候,能够更快的定位问题,特别是当另一名开发人员来接手你的代码,通过完整的测试流程,能够清晰的理清楚你的代码逻辑和模块 。现在整理一下单元测试,由于设备有限,操作环境都是Windows系统,
1.安装各种包,node,cnpm,最基本的,
接下来安装mocha
cnmp install mocha -g
安装karma
cnpm install karma -g
构建脚手架
cnpm install karma-cli -g
npm init 初始化 然后会多一个karma conf.js文件
然后会问你一些问题,测试选mocha 其他默认
启动测试:karma start
然后是测试的一些基本单元测试
assert.equal判断是否相等,assert.deepEqual()判断深度相等也就是判断一个对象是否相等
安装了should后等同于js引用了jq,str.should.equal(str) str.should.deepEqual(str) 其中运行时碰到了bug, 后来test目录下运行就ok了,其他的问题都在配置karma.conf.js文件上,多试试就知道了
module.exports = function(config){
config.set({
//基础路径:表示karma从哪个位置开始找文件
basePath:’’,
//测试环境
browsers:true,
//框架 mocha都可以
framework:['mocha'],
//测试的入口文件
files:['https://cdn.bootcss.com/jquery/2.2.4/jquery.js',
'node_modules/should/should.js',
'test/**.js'],
//排除文件,可以是正则
exclude:[],
//对指定文件的预处理
preprocessors:{
},
//结果报表
reporters:[''],
//colors 报表中是否有颜色区分
colors:true,
//port 服务器端口
port:9876,
// 输出的日志级别
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// 文件变化是否自动刷新
autoWatch: true,
//是否依附浏览器运行
singleRun:false,
//并发数,同时支持多少个浏览器运行
concurrency:Infinity,
//webpack配置
webpack:webpackConfig,
//代码覆盖率配置节点
coverageReporter:{
}
})
}
现写到这里,之后学习到啥继续完善。