记录参考:

参考文档:

测试报告以及es6:

http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html

测试接口类型:

https://blog.csdn.net/hustzw07/article/details/73920809

参数

之前我们写 Mocha测试用例的时候,主要用 describe(), it() 组织用例。这跟 Jasmine 风格是类似的。实际上,这只是 Mocha 支持的一种而已。

在命令行中,有如下命令可供我们选择。

  1. -u, --ui <name>  specify user-interface (bdd|tdd|qunit|exports)

默认情况下,Mocha使用 bdd 帮我们执行 describe(), it() 的用例。

  1. describe('#indexOf()', function(){
  2. it('should return -1 when not present', function(){
  3. [1,2,3].indexOf(4).should.equal(-1);
  4. });
  5. });

我们也可以选择其他接口类型。比如 tdd。
Mocha的测试接口类型指的是集中测试用例组织模式的选择,更像是为用户提供几种组织测试用例的方式。

BDD

BDD行为驱动开发,全名 Behavior Driven Development。
Mocha默认的测试接口。 BDD测试接口提供 describe(), context(), it(), specify(), before(), after(), beforeEach(), 和 afterEach()几种函数,其中context函数只是describe函数的别名,specify函数也是it函数的别名。

另外,Jasmine的测试风格就是bdd,它的特征就是使用describe,it。 对 BDD 有兴趣的可以去这个网站看下
http://jbehave.org/introduction.html

TDD

TDD,测试驱动开发(Test-Driven Development)
TDD接口提供 suite(), test(), suiteSetup(), suiteTeardown(), setup(), 和 teardown()函数,用例写法如下:

  1. suite('#indexOf()', function(){
  2. test('should return -1 when not present', function(){
  3. ([1,2,3].indexOf(4)).should.be.eql(-1);
  4. });
  5. });

tdd跟bdd区别在于,它使用suite,test,suiteSetup,suiteTeardown,setup,teardown 等函数。

Exports

exports 跟 node 里的模块语法很像,before, after, beforeEach, and afterEach 都是作为对象的属性,其它对象的值默认是 suite,属性是函数的话,代表是一个test。简单来说,除了钩子函数,对象是 测试集, 属性是 测试用例。

  1. require("should");
  2. module.exports = {
  3. before: function(){
  4. // ...
  5. },
  6. 'Array': {
  7. '#indexOf()': {
  8. 'should return -1 when not present': function(){
  9. [1,2,3].indexOf(4).should.equal(-1);
  10. }
  11. }
  12. }
  13. };

钩子函数

从 BDD 到 TDD,describe 和 it 变变成了 suite, test。对应的钩子函数也变了。那它们的行为有没有改变呢?下面是个例子。

  1. var assert = require('assert');
  2. var mocha  = require('mocha');
  3. require("should");
  4. suite('Array', function(){
  5. suiteSetup(function(){
  6. console.log();
  7. console.log('-----------suiteSetup');
  8. });
  9. suiteTeardown(function(){
  10. console.log('-----------suiteTeardown');
  11. console.log();
  12. });
  13. setup(function(){
  14. console.log();
  15. console.log('-----------setup');
  16. });
  17. teardown(function(){
  18. console.log('-----------teardown');
  19. console.log();
  20. });
  21. test('First layer', function(){
  22. ([1,2,3].indexOf(4)).should.eql(-1);
  23. });
  24. suite('Second layer', function(){
  25. suiteSetup(function(){
  26. console.log();
  27. console.log('-----------Second layer suiteSetup');
  28. });
  29. setup(function(){
  30. console.log();
  31. console.log('-----------Second layer setup');
  32. });
  33. test('Second layer test', function(){
  34. ([1,2,3].indexOf(4)).should.eql(-1);
  35. });
  36. });
  37. });

输出

mocha测试接口类型及测试报告收集的更多相关文章

  1. postman测试接口各种类型传值

    postman测试接口各种类型传值 标签: postman测试 json串 Map 2018年01月27日 02:32:00 145人阅读 评论(0) 收藏 举报 1.Map类型或实体类类型传值,即j ...

  2. 使用mocha测试

    学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...

  3. (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-

    HRESULT:0x80030002 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft ...

  4. [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念

      本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程?   java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的 ...

  5. Go基础系列:接口类型断言和type-switch

    接口类型探测:类型断言 接口实例中存储了实现接口的类型实例,类型的实例有两种:值类型实例和指针类型实例.在程序运行过程中,接口实例存储的实例类型可能会动态改变.例如: // ins是接口实例 var ...

  6. 添加 node mocha 测试模块

    1.mocha  支持TDD 和 BDD两种测试风格 2.引用assert模块  此模块是node的原生模块,实现断言的功能,作用是声明预期的结果必须满足 3.mocha测试用例中可以使用第三方测试库 ...

  7. mocha测试框架-truffle

    https://mochajs.org/
学习网址:
https://www.jianshu.com/p/9c78548caffa
https://www.jb51.net/article/10646 ...

  8. jmeter中测试接口

    本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明: 1.jmeter简介 2.jmeter怎么做接口测试 3.jmeter进行参数化的几种形式 4.jmeter中处理乱码方法 5.jm ...

  9. postman工具测试接口

    本篇文章主要介绍怎么在postman工具中进行接口的测试? 从以下几个方面进行介绍: 1.先介绍下接口测试 2.不同类型的接口请求方式如何在postman中进行测试 1.1 接口 什么是接口? 接口一 ...

随机推荐

  1. RSA读取密钥——使用openssl编程

    RSA是基于数论中大素数的乘积难分解理论上的非对称加密法.在此密码术中,使用公钥(public key)和私钥(private key)两个不同的密钥:公钥用于加密,它是向所有人公开的:私钥用于解密, ...

  2. SDI core端口说明

    SDI core端口说明 本文基于赛灵思的官方文档以及自己的理解: 1.生成SDI core 2.得到SDI core的顶层文件,并对每个端口做出解释 smpte_sdi smpte_sdi ( .r ...

  3. sourceInsight与IAR的同步

    编写与编译二者同步:引用http://bbs.ednchina.com/BLOG_ARTICLE_3013475.HTM 1 在IAR中新建一个工程TEST.菜单栏 File->New-> ...

  4. Python3中Urllib库基本使用

    什么是Urllib? Python内置的HTTP请求库 urllib.request          请求模块 urllib.error              异常处理模块 urllib.par ...

  5. VMware Workstation 安装 mac OS 时遇到 不可恢复错误: (vcpu-0)

    去客户机的安装目录,打开VMX文件, 比如你的客户机名字为OSX, 这个文件就是OSX.vmx,你将会看到有一个smc.present的参数:smc.present = "TRUE" ...

  6. 无后缀名伪静态路径在IIS7.0的网站提示 "404 - File or directory not found"

    新配置服务器(windows server 2008,not sp1) 经测试情况如下: ①无后缀名伪静态路径行在IIS7.0的网站提示 ”404 - File or directory not fo ...

  7. 在Python中进行自动化单元测试的教程

    From: https://www.jb51.net/article/64119.htm 一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必 ...

  8. [转]jvm加载类规则

    jvm包括三种类加载器: 第一种:bootstrap classloader:加载Java的核心类. 第二种:extension classloader:负责加载jre的扩展目录中的jar包. 第三种 ...

  9. 服务网关zuul之四:zuul网关配置

    禁用过滤器在Zuul中特别提供了一个参数来禁用指定的过滤器,该参数的配置格式如下:zuul.AccessFilter.pre.disable=true动态加载动态路由通过结合Spring Cloud ...

  10. etcd 命令行(转)

    原文 https://www.cnblogs.com/breg/p/5756558.html 比较重要的配置 -name 节点名称,默认是UUID-data-dir 保存日志和快照的目录,默认为当前工 ...