使用mocha进行测试 区块链

mocha安装

  • npm install mocha --save-dev

mocha简介

  • mocha是一个JavaScript的单元测试的框架,既可以运行在浏览器环境中,也可以运行在node.js环境中,只需要编写测试用例,mocha就会将测试自动的运行,并且给出测试的结果

主要特点

  • 既可以测试简单的JavaScript函数,也可以测试异步代码
  • 既可以自动运行所有的测试,也可以只运行特定的测试
  • 可以支持before、after、beforeEach和aftereach来编写初始化代码

测试用例 

不使用mocha的版本

sum.js

  • 使用module.exports = function ,别的文件只需要require这个文件,就可以使用其内部的函数
  • ...rest   不限制输入参数的多少,但是输入的参数会形成一个数组
module.exports = function (...rest){var sum = 0;for(let i of rest){sum += i;}return sum;
}

testSum.js 

  • 使用node testSum.js执行
const assert = require('assert');
const sum = require('/sum.js')assert.strictEqual(sum(),0);
assert.strictEqual(sum(1,2),2);
assert.strictEqual(sum(1,2,3),2);
console.log("all asert over!");

 

使用mocha的版本

testSum.js

  • 使用./node_modules/mocha/bin/mocha testSum.js执行
const assert = require('assert');
const sum = require('./sum.js')describe('#sum.js',()=>{describe('#sum.js',()=>{it('sum() should return 0',()=>{assert.strictEqual(sum(),0);});it('sum(1,2) should return 3',()=>{assert.strictEqual(sum(1,2),3);});it('sum(1,2,3) should return 6',()=>{assert.strictEqual(sum(1,2,3),6);});});
});

  • 如果测试存在错误

补充

  • 单独使用命令./node_modules/mocha/bin/mocha  
  • 只需要创建一个test文件夹,然后将测试需要的脚本放到测试文件夹下面
  • 还需要改路径喔,const sum = require('./sum.js')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习笔记(六)

参考书籍:linux就该这么学 6.存储结构与磁盘划分 6.1 文件系统与数据资料 6.2 挂载硬件设备 6.2.1 mount 命令用于挂载文件系统 6.2.2 umount 命令用于撤销已经挂载的设备文件 6.3 添加硬盘 6.3.1 fdisk 命令用于管理磁盘分区 6.3.2 用于查看文件数据占用量的 du 命…

实现Linux系统外部和容器内部的文件传输

主机和容器之间进行文件传输,需要使用容器的ID即可 获取方法如下 输入指令 docker ps -a只需要CONTAINER ID传输命令 docker cp 本地文件路径 容器ID:容器的路径将文件从容器拷贝到本地的原理是一致的,只需要将对应路径的位置进行更换即可

Linux学习笔记(五)

参考书籍:linux就该这么学 5 用户身份与文件权限 5.1 用户身份与能力 强烈推荐大家在学习时使用 root 管理员权限!因为在 Linux 的学习过程中如果使用普通用户身份进行操作,则在配置服务之后出现错误时很难判断是系统自身的问题还是因为权限不…

清除Docker的占用空间问题

使用命令查看磁盘的空间 docker system df ,类似于Linux的df命令,用于查看Docker使用的磁盘空间Docker镜像占据了4.789GBDocker容器占据了348BDocker数据卷占据了0B 执行删除命令 docker system prune命令可以用于清理磁盘,删除关闭的容器、…

集训01-03 (c++实现)

#include<bits/stdc.h>与using namespace std;在第一第二行加上就行&#xff0c;无需了解 cin cout endl为c的输入&#xff0c;输出与换行符 Istringsteam 是string流,用来string转换为int 五个函数&#xff08;需要稍微了解c迭代器&#xff0c;lambda(类似函数)&#xf…

区块链的完整流程 自动化执行代码

通过npm script机制&#xff0c; 在package.json文件中&#xff0c;输入对应的代码&#xff0c;就可以自动化执行相关的函数使用npm run test执行package.json中的内容&#xff0c;因为package.json包含test&#xff0c;所以可行&#xff0c;但是使用npm run compile会报错

集训04-06 (c++实现)

极力推荐《算法笔记》这本书&#xff01;&#xff01;&#xff01; 极力推荐《算法笔记》这本书&#xff01;&#xff01;&#xff01; 极力推荐《算法笔记》这本书&#xff01;&#xff01;&#xff01; &#xff08;重要的事情说三遍&#xff09; 数据结构和算法讲的很好&…

数字签名和数字信封之间的介绍

介绍 公钥密码体制在实际应用中包含数字签名和数字信封两种方式 数字签名 指用户用自己的【私钥】对原始数据的哈希摘要进行加密所得的数据。数字签名定义两种互补的运算&#xff1a;一个用于签名&#xff0c;另一个用于验证。"私钥签名,公钥验证"签名&#xff1a;…

Linux学习笔记(三)

参考书籍&#xff1a;Linux就该怎么学 3 管道符、重定向与环境变量 3.1.1 输入输出重定向 ➢ 标准输入重定向&#xff08;STDIN&#xff0c;文件描述符为 0&#xff09;&#xff1a;默认从键盘输入&#xff0c;也可从其他文件或命令中输入。 ➢ 标准输出重定向&#xff08;STDO…

windows版本的clion软件除了使用wsl配置Ubuntu子系统外,还可以使用MinGW-w64来配置gcc和g++

主要内容 MinGW-w64安装CMake安装环境配置参考链接 MinGW-w64安装配置 安装配置分为在线版本和离线版本&#xff0c;推荐使用离线版本&#xff0c;因为在线版本很慢&#xff0c;需要插入网线进行操作参考链接 这个是百度云下载地址&#xff0c;相对于从官网下载速度稍微快一些…

python学习路线

自用 Task1: 如果对一个列表&#xff0c;既要遍历索引又要遍历元素时&#xff0c;首先可以这样写&#xff1a; list1 ["这", "是", "一个", "测试"] for i in range (len(list1)):print i ,list1[i]#上述方法有些累赘&#xff0c…

解决使用MinGW编译C++代码报cannot find -lxxxx的问题

报错的截图如下面所示 我一开始使用target_link_libraries(ThreadTest libsdf_core.dll)这条命令来将dll库文件和项目文件关联起来&#xff0c;但是解决不了问题也尝试在编译代码的环境时候&#xff0c;将dll库文件的绝对路径加入到编译环境中&#xff0c;但是也没有用解决办法…

Linux搭建深度学习环境使用指南

本文档归纳不收悉的linux知识点&#xff0c;自用 终端美化&#xff1a;https://zhuanlan.zhihu.com/p/37195261&#xff08;unix终端通用&#xff09; 基础linux命令&#xff1a;https://blog.csdn.net/q357010621/article/details/80248611 shell是什么&#xff1f;shell是一…

CLion 输出遇到乱码解决办法,GBK和utf-8的转换

具体操作 File -> Settings -> Default Settings -> Editor -> File Encodings:Global Encoding: UTF-8Project Encoding : UTF-8Default encoding for properties files: UTF-8 图片展示 然后&#xff0c;在main.cpp右下角选择语言编码格式为GBK&#xff0c;在弹…

Vim使用方法归纳

编辑模式i 0 &#xff1a;光标移至行首d0 : 删除到行首$ &#xff1a;光标移至行尾D/d$ : 删除到行尾dd &#xff1a; 删除当前行yy/nyy : 复制当前行/复制n行p/P &#xff1a; 粘贴&#xff08;vim中删除是剪切&#xff0c;可以删除后用p粘贴&#xff09;u &#xff1a; 撤回…

区块链中涉及到密码学的场景

区块链中涉及到密码学的场景 共识算法&#xff08;Consensus algorithm&#xff09;交易签名&#xff08;Signing transaction)第二层网络如何在第一层网络中验证&#xff08;Layer2’s verification on Layer1&#xff09;验证跨链交易&#xff08;Verifying the cross chain…

epoll 转kqueue的用法介绍和实例 实现跨平台Macos

网上关于kqueue的博客很少 我来补充一个例子echo 的例子 #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <string.h> #include<stdio.h> #include<arpa/inet.h> #include<sys/event.…

区块链中的密码学,使用ABE结合区块链

ABE 密码学&#xff0c;以及与区块链结合的价值 背景 区块链技术具备篡改难度高、使用成本低、分布式的优点&#xff0c;本应成为各行各业的重要助力。但是由于链上参与方担心自己的核心数据外泄&#xff0c;不愿将自己的核心数据上链&#xff0c;这个原因成为阻止区块链落地…

VMware虚拟机安装Ubuntu系统教程

所使用的文件如下&#xff1a; VMware Workstation 17 Pro ubuntu-22.04.3-desktop-amd64.iso 一、ubuntu 命名规则及各版本一览表 1.ubuntu 命名规则&#xff1a; 例如&#xff1a;ubuntu 16.04 LTS 是长期维护版本&#xff1b;ubuntu 17.04 是新特性版本 前两位数字为发…

C++静态类型成员变量的初始化顺序(单例模式)

对编译器来说&#xff0c;静态成员变量的初始化顺序和析构顺序是一个未定义的行为 #include <string> #include <iostream> using namespace std; class Base{ public:static int b;static int a;}; int Base::b 2; int Base::a b 1;int main() {Base base;cou…