mocha测试接口类型及测试报告收集
记录参考:
参考文档:
测试报告以及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 支持的一种而已。
在命令行中,有如下命令可供我们选择。
- -u, --ui <name> specify user-interface (bdd|tdd|qunit|exports)
默认情况下,Mocha使用 bdd 帮我们执行 describe(), it() 的用例。
- describe('#indexOf()', function(){
- it('should return -1 when not present', function(){
- [1,2,3].indexOf(4).should.equal(-1);
- });
- });
我们也可以选择其他接口类型。比如 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()函数,用例写法如下:
- suite('#indexOf()', function(){
- test('should return -1 when not present', function(){
- ([1,2,3].indexOf(4)).should.be.eql(-1);
- });
- });
tdd跟bdd区别在于,它使用suite,test,suiteSetup,suiteTeardown,setup,teardown 等函数。
Exports
exports 跟 node 里的模块语法很像,before, after, beforeEach, and afterEach 都是作为对象的属性,其它对象的值默认是 suite,属性是函数的话,代表是一个test。简单来说,除了钩子函数,对象是 测试集, 属性是 测试用例。
- require("should");
- module.exports = {
- before: function(){
- // ...
- },
- 'Array': {
- '#indexOf()': {
- 'should return -1 when not present': function(){
- [1,2,3].indexOf(4).should.equal(-1);
- }
- }
- }
- };
钩子函数
从 BDD 到 TDD,describe 和 it 变变成了 suite, test。对应的钩子函数也变了。那它们的行为有没有改变呢?下面是个例子。
- var assert = require('assert');
- var mocha = require('mocha');
- require("should");
- suite('Array', function(){
- suiteSetup(function(){
- console.log();
- console.log('-----------suiteSetup');
- });
- suiteTeardown(function(){
- console.log('-----------suiteTeardown');
- console.log();
- });
- setup(function(){
- console.log();
- console.log('-----------setup');
- });
- teardown(function(){
- console.log('-----------teardown');
- console.log();
- });
- test('First layer', function(){
- ([1,2,3].indexOf(4)).should.eql(-1);
- });
- suite('Second layer', function(){
- suiteSetup(function(){
- console.log();
- console.log('-----------Second layer suiteSetup');
- });
- setup(function(){
- console.log();
- console.log('-----------Second layer setup');
- });
- test('Second layer test', function(){
- ([1,2,3].indexOf(4)).should.eql(-1);
- });
- });
- });
输出
mocha测试接口类型及测试报告收集的更多相关文章
- postman测试接口各种类型传值
postman测试接口各种类型传值 标签: postman测试 json串 Map 2018年01月27日 02:32:00 145人阅读 评论(0) 收藏 举报 1.Map类型或实体类类型传值,即j ...
- 使用mocha测试
学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...
- (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-
HRESULT:0x80030002 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft ...
- [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的 ...
- Go基础系列:接口类型断言和type-switch
接口类型探测:类型断言 接口实例中存储了实现接口的类型实例,类型的实例有两种:值类型实例和指针类型实例.在程序运行过程中,接口实例存储的实例类型可能会动态改变.例如: // ins是接口实例 var ...
- 添加 node mocha 测试模块
1.mocha 支持TDD 和 BDD两种测试风格 2.引用assert模块 此模块是node的原生模块,实现断言的功能,作用是声明预期的结果必须满足 3.mocha测试用例中可以使用第三方测试库 ...
- mocha测试框架-truffle
https://mochajs.org/ 学习网址: https://www.jianshu.com/p/9c78548caffa https://www.jb51.net/article/10646 ...
- jmeter中测试接口
本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明: 1.jmeter简介 2.jmeter怎么做接口测试 3.jmeter进行参数化的几种形式 4.jmeter中处理乱码方法 5.jm ...
- postman工具测试接口
本篇文章主要介绍怎么在postman工具中进行接口的测试? 从以下几个方面进行介绍: 1.先介绍下接口测试 2.不同类型的接口请求方式如何在postman中进行测试 1.1 接口 什么是接口? 接口一 ...
随机推荐
- c/c++ int数组初始化/重置为0
1.int数组其实初始化的时候默认就是全部为0 int a[1000];int a[1000] = {0}; 以上2种写法其实都可以 注意:int a[1000] = {0};这种方法如果想把整形数组 ...
- Eureka的高可用
问题: 现在Eureka和Client是1对1,但是Eureka挂了,就不能用了. 如何解决呢,创建多个Erurka.并且Eureka进行相互注册.如下图 怎么相互注册呢 1. 创建两个Eureka ...
- MySQL的吞吐量
MySQL 的QPS吞吐量或者说TPS与很多因素有关,例如CPU.内存以及硬盘等. <高性能MySQL>第三版 1.5小节对各个版本的MySQL进行了测试,其结果如下. 测试机器 测试机器 ...
- Linux系统构成和基本操作
Linux的优势 Linux的目录结构 Linux目录与文件管理 列出目录内容 创建新目录(文件夹) 创建文件 复制文件或目录 删除文件或目录 移动目录或文件 查看文件属性 文件属性含义 读权限-4 ...
- spring cloud和spring boot两个完整项目
spring cloud和spring boot两个完整项目 spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka.Fegin.Ribbon.Z ...
- IO流中File文件最常用和直接的用法
一.File (一)概述 1.File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定 2.构造方法 1)Fi ...
- 自定义抛出throw 对象练习
package ltb6w; import java.util.*; public class Bank { private String select; private String select2 ...
- vue中绑定多个class,多个情况使用同一个class时,用js的或 “||”
class中 当依赖中断的时候是绑定的red,但是这样写绑定不了, 大括号{}里可以下js代码的,下面的orange就可以绑定成功,写成双竖线 形式.
- @Resource无法import相关
一.查找@Resource在那个jar包里 @Resource注解的类路径是:javax.annotation.Resource,是annotation-api.jar包中的类,是JDK1.6支持的注 ...
- 分布式消息队列RocketMQ--事务消息--解决分布式事务
说到分布式事务,就会谈到那个经典的”账号转账”问题:2个账号,分布处于2个不同的DB,或者说2个不同的子系统里面,A要扣钱,B要加钱,如何保证原子性? 一般的思路都是通过消息中间件来实现“最终一致性” ...