一. 单元测试
  单元测试分为两种:
  TDD:Test-Driven Development,测试驱动开发,注重输出结果。
  BDD:Behavior Driven Development,行为驱动开发,注重测试逻辑。
  对于TDD、BDD的区别可查看: 关于TDD、BDD和DDD的一些看法 。
  对于单元测试,推荐查看 【译】每个单元测试必须回答的 5 个问题 。
  mocha默认的模式是BDD。
  二. Mocha介绍
  在Node.js中,目前比较流行的单元测试组合是 mocha + chai 。mocha是一个测试框架,chai是一个断言库,所以合称”抹茶”。
  断言库类型有: jasmine 、 should.js 、 chai 、 assert 。哪个更好主要看团队和项目需要吧,个人喜欢chai断言库的assert风格,更接近原生也更人性化。
  Mocha主要特性有:
  支持异步的测似用例,如Promise;
  支持代码覆盖率coverage测试报告;
  支持配置不同的测试(如断言库);
  … …
  本文使用的是: Mocha + chai(assert风格) 。
  安装如下:
  npm install mocha -g
  npm install mocha
  npm install chai
  跑Mocha测试的命令:
  mocha [debug] [options] [files]
  如:
  mocha --recursive test/
  三. Mocha的三个基本方法:
  Mocha有三个基本方法:
  describe(moduleName, function)
  describe是可嵌套的,描述测试用例是否正确。
  describe(‘测试模块的描述’, function() {
  // …
  });
  it(info, function)
  info为描述性说明。一个it对应一个单元测试用例。
  describe(‘单元测试的描述,一般写明用途和返回值’, function() {
  // …
  });
  assert.equal(exp1, exp2)
  mocha的断言语句,判断exp1是否等于exp2。
 四. Mocha的异步代码测试:
  done
  一个it里面只有一个done。
  done标识回调的最深处,也是嵌套回调函数的末端。
  备注:在mocha v3.x版本,Promise回调不需要使用 done 来标识回调最深处,并且在Promise回调中是用done回报错。

describe('User', function() {
describe('#save()', function() {
it('should save without error', function(done) {
var user = new User('Luna');
user.save(done);});});
});

五. Test Hooks方法:
  before() 、 after() 、 beforeEach() 、 afterEach() 是基于BDD风格提出的。用于预处理和test后的处理。
  Test Hooks方法的几个注意点:
  beforeEach会对当前describe下的所有子case生效;
  before和after的代码没有特殊顺序要求;
  同一个describe下的执行顺序为before、beforeEach、afterEach、after;
  当一个it有多个before的时候,执行顺序是从最外围的describe的before开始,其他同理。

describe('hooks', function() {before(function() {// runs before all tests in this block});after(function() {// runs after all tests in this block});beforeEach(function() {// runs before each test in this block});afterEach(function() {// runs after each test in this block});// test cases
});

Hooks的三种写法:
  beforeEach(function() {
  });
  beforeEach(function nameFun() {
  });
  beforeEach(“some description”, function() {
  });
http://www.51testing.com/html/08/n-3715208.html

前端Mocha+Chai单元测试相关推荐

  1. [Js_Testing]3分钟学会Mocha+Chai单元测试

    目录 什么是单元测试 什么是mocha 常见断言库 什么是chai 介绍 用法: 使用 安装环境 测试框架写法 mocha的使用 本节代码 参考目录 什么是单元测试 单元测试是用来对一个模块.一个函数 ...

  2. [Puppeteer]Puppeteer+Mocha+Chai实现端到端测试

    目录 项目 puppeteer实现自动化 知识点补充 Mocha+Chai实现测试 优化代码 本节代码 相关链接 项目 将单元测试框架mocha,断言chai和puppeteer结合起来做端到端测试: ...

  3. 大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试

    一. 前端自动化测试 大多数前端开发者对测试相关的知识是比较缺乏的,一来是开发节奏很快,来不及写,另一方面团队里也配备了"人肉测试机",完全没必要自己来.但随着项目体量的增大,许多 ...

  4. 前端单元测试-karma+mocha+chai

    一.概念普及 1.单元测试运行环境: 运行环境是集成一系列功能的工具,我们可以通过它来选择"测试框架".自动打开浏览器.查看测试结果等功能.我们可以把它近似的理解为vue的vue- ...

  5. 前端新手使用karma+mocha+chai+sinon 进行angularjs 单元测试

    这里只谈如何搭建环境. 选型:在jasmine 和 mocha+chai中间比较了一下,根据项目需要选择了后者. 安装依赖包和环境 直接执行下列命令安装或在项目目录下 运行npm install(pa ...

  6. 使用karma+mocha+chai为vue组件库做单元测试

    前言 单元测试,这一环节对我们的应用的重要性不言而喻,它能很大程度确保我们项目运行的健壮性.因此,前一段时间,笔者公司要求现有的vue搭建的npm组件库做单元测试.之前,笔者对单元测试做过了解,一直想 ...

  7. electron的单元测试(基于mocha+chai+karma)

    1. 最近有个接手在已有的(electron-vue)的项目中做单元测试,但是基于vue-electron脚手架搭建的项目的electron是2.0.4版本,而最新的electron已经升级到11版本 ...

  8. vue-cli自动化测试karma + mocha + chai

    最近再为团队团队选择可行的测试方案.前端目前是vue-cli技术栈.试着在vue项目添加测试.把测试完整的方案记录下来. vue官网给的例子用的是karma + mocha + chai. karma ...

  9. 【nodejs】mocha+chai+nyc基础

    前言 以前就听说单元测试什么的,没怎么重视,既然这玩意那么多人吹,肯定有好处,再研究看看. 官网 chai官网文档 mocha文档. chai-http文档 nyc文档 安装 用js的不用装@type ...

最新文章

  1. 花卉世界大观园和杂技之游
  2. 用flex进行网易云音乐界面构建和布局解析(2)
  3. 新计算机教师工作随笔反思,信息技术反思随笔 (2)
  4. Hibernate常见问题
  5. 小甲鱼python学习笔记1
  6. 计算机 画图软件 快捷键大全,教你完整版电脑CAD快捷键大全
  7. 离散数学考点之度序列简单图化
  8. connect to address IP: No route to host
  9. The root link base_link has an inertia specified in the URDF, but KDL does not support a root ...
  10. 双11商超大促,竞争白热化,智慧供应链成品牌最大助力!
  11. PDF 格式的文件编辑难度非常大, 相比 DOCX 格式,它存在的意义是什么?
  12. gazebo机器人电池仿真
  13. Unity中单点和多点触控
  14. 【抓包工具】配置:Fiddler 设置 APP 抓包成功,微信小程序却无网络问题解决
  15. vue3:路由守卫(全局守卫、路由独享守卫、组件内守卫)
  16. 软件测试 -- 进阶 6 软件缺陷
  17. 区位码,国标码以及汉字内码的关系以及为什么是这样的关系
  18. a=a+b和a+=b
  19. 快毕业的时候,研究生就业率还不到9%!全省最强的211大学就业率这么低?
  20. 探访新疆喀什老城:从连片危房到5A景区

热门文章

  1. 2019第九届中国测绘地理信息技术装备博览会
  2. L1 VS L2(深度学习中的L1与L2)
  3. Cisco认证题库、中英文精选资料下载
  4. 如何做一名好的软件开发的销售精英
  5. 第1章 对象入门——Thinking-in-Java
  6. 在C#中给word文档加密和解密全过程
  7. Android移动开发:第二章按钮(2)
  8. [墨者学院] 日志文件分析溯源(脱裤的IP地址)
  9. 常用公共代码二之分页代码的实现
  10. 操作文件操作符的工作模式:LT(电平触发)ET(边缘触发)实验对比