mocha

博客管理系统开发 -- 准备工作

时光总嘲笑我的痴心妄想 提交于 2020-04-06 13:36:31
一、前端开发环境 1、开发环境 windows 10操作系统; Node.js v10.16.0; webstorm 2019.3.4 x64; 2、前端技术栈 react v16.9 hooks + redux + react-router4; antd; marked hightlight.js; webpach打包优化; axios封装; 二、前端知识回顾 1、基础学习 如果没有接触过react的话,推荐先学习一下react基础知识: 1、react的入门教学视频入口: React 入门教程(开发文档) ; 2、官方教程入口: 入门教程: 认识 React ; 3、redux教程: 从零实现一个 redux ; 2、命名规范 html标签:小写字符开始; 自定义React组件:大写字符开始; 其它变量、方法:函数驼峰命名法; 文件夹、文件命名:全部小写,中间使用-分割,如data-assets; 三、npm使用 1、npm介绍 npm是随同Node.js一起安装的包管理工具,能解决Node.js代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从npm服务器下载别人编写的第三方包到本地使用; 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用; 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用; 由于新版的Node.js已经集成了npm

How to check for class inheritance in Coffeescript Mocha Test?

倾然丶 夕夏残阳落幕 提交于 2020-03-25 18:54:18
问题 How do I check for the class of an object in a mocha spec in Coffeescript? I have tried the following: # foo.coffee class Foo module.exports = new Foo() # foo_spec.coffee should = require 'should' { Foo } = require 'foo' foo = new Foo foo.should.be.an.instanceOf(Foo) However, I receive ReferenceError Foo is not defined 回答1: I believe this to be the easiest approach: # foo.coffee class Foo module.exports = new Foo() module.exports.Foo = Foo # IMPORTANT, exports the actual class Foo # foo_spec

测试框架 Mocha 实例教程

故事扮演 提交于 2020-03-25 00:25:26
3 月,跳不动了?>>> Mocha (发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏览器和Node环境都可以使用。 所谓"测试框架",就是运行测试的工具。通过它,可以为JavaScript应用添加测试,从而保证代码的质量。 本文全面介绍如何使用 Mocha ,让你轻松上手。如果你以前对测试一无所知,本文也可以当作JavaScript单元测试入门。值得说明的是,除了Mocha以外,类似的测试框架还有 Jasmine 、 Karma 、 Tape 等,也很值得学习。 一、安装 我为本文写了一个示例库 Mocha-demos ,请先安装这个库。 $ git clone https : / / github . com / ruanyf / mocha - demos . git 如果你的电脑没装Git,可以直接下载 zip压缩包 ,进行解压。 然后,进入 mocha-demos 目录,安装依赖(你的电脑必须有Node)。 $ cd mocha - demos $ npm install 上面代码会在目录内部安装 Mocha ,为了操作的方便,请在全面环境也安装一下 Mocha 。 $ npm install -- global mocha 二、测试脚本的写法 Mocha 的作用是运行测试脚本,首先必须学会写测试脚本。所谓"测试脚本"

NutUI 3.0 中单元测试的探索和实践

无人久伴 提交于 2020-03-23 20:36:34
3 月,跳不动了?>>> 众所周知,单元测试功能,是组件库开发中必不可少的一部分,负责进行检查和验证,保证了组件的合理性和规范性。本文主要讲的就是单元测试在 NUTUI 组件库 中的探索实践,我们将从如何编写单元测试、持续集成服务、Coveralls 自动测试代码覆盖率三方面进行阐述。如图所示: 如果你对这些内容感兴趣,就和我一起来看一下吧! 单元测试配置 在进入单元测试配置正文之前,我们先来了解下面两个问题。 单元测试是什么? 为什么需要单元测试? 单元测试是什么? 单元测试(unit testing),可以对软件中的最小可测试单元进行检查和验证,是软件开发中重要的一部分。它使得添加新功能和追踪问题更加容易。 为什么需要单元测试? 单元测试在开发的时候很有用,即能帮助开发者思考如何设计一个组件,也能够重构一个现有组件。每次代码发生变化的时候它们都会被运行。有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。 组件的单元测试有以下等优点: 提供描述组件行为的文档 减少调试时间,节省手动测试的时间 减少研发新特性时产生的 bug,测出功能的隐藏 bug 减少和快速定位 bug 促进重构,保证代码重构的安全性 如何编写单元测试? 我们既是单元测试的受益者,同时也是开发者,接下来我们进入正题,来聊一聊,如何在 vue 组件库中,加入单元测试。

Stub a standalone module.exports function using rewire

拥有回忆 提交于 2020-03-23 12:19:04
问题 I am trying to stub a module.exports function. But I have some trouble. I will give you a sudo code of the situation. MyController.js const sendOTPOnPhone = rewire('../../src/services/OtpService/sendOTPOnPhone') module.exports = async function(req, res) { const { error, data } = await sendOTPOnPhone(req.query.phone) //this is I want to stub if(error) return return res.send(error) return res.send(data) } sendOTPService.js module.exports = async function(phone) { const result = await fetch(

NutUI 3.0 中单元测试的探索和实践

懵懂的女人 提交于 2020-03-20 22:58:48
3 月,跳不动了?>>> 众所周知,单元测试功能,是组件库开发中必不可少的一部分,负责进行检查和验证,保证了组件的合理性和规范性。本文主要讲的就是单元测试在 NUTUI 组件库 中的探索实践,我们将从如何编写单元测试、持续集成服务、Coveralls 自动测试代码覆盖率三方面进行阐述。如图所示: 如果你对这些内容感兴趣,就和我一起来看一下吧! 单元测试配置 在进入单元测试配置正文之前,我们先来了解下面两个问题。 单元测试是什么? 为什么需要单元测试? 单元测试是什么? 单元测试(unit testing),可以对软件中的最小可测试单元进行检查和验证,是软件开发中重要的一部分。它使得添加新功能和追踪问题更加容易。 为什么需要单元测试? 单元测试在开发的时候很有用,即能帮助开发者思考如何设计一个组件,也能够重构一个现有组件。每次代码发生变化的时候它们都会被运行。有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。 组件的单元测试有以下等优点: 提供描述组件行为的文档 减少调试时间,节省手动测试的时间 减少研发新特性时产生的 bug,测出功能的隐藏 bug 减少和快速定位 bug 促进重构,保证代码重构的安全性 如何编写单元测试? 我们既是单元测试的受益者,同时也是开发者,接下来我们进入正题,来聊一聊,如何在 vue 组件库中,加入单元测试。

Is it possible to use ES6 modules in Mocha tests?

佐手、 提交于 2020-03-18 05:23:29
问题 ES6, Windows 10 x64, Node.js 8.6.0, Mocha 3.5.3 Is it possible to use ES6 modules in Mocha tests? I have the problems with export and import keywords. /* eventEmitter.js */ /* Event emitter. */ export default class EventEmitter{ constructor(){ const subscriptions = new Map(); Object.defineProperty(this, 'subscriptions', { enumerable: false, configurable: false, get: function(){ return subscriptions; } }); } /* Add the event listener. * @eventName - the event name. * @listener - the listener.

Is it possible to use ES6 modules in Mocha tests?

梦想的初衷 提交于 2020-03-18 05:23:26
问题 ES6, Windows 10 x64, Node.js 8.6.0, Mocha 3.5.3 Is it possible to use ES6 modules in Mocha tests? I have the problems with export and import keywords. /* eventEmitter.js */ /* Event emitter. */ export default class EventEmitter{ constructor(){ const subscriptions = new Map(); Object.defineProperty(this, 'subscriptions', { enumerable: false, configurable: false, get: function(){ return subscriptions; } }); } /* Add the event listener. * @eventName - the event name. * @listener - the listener.

In-memory MongoDB for test?

懵懂的女人 提交于 2020-03-17 10:07:51
问题 I am writing some integration and system tests for my NodeJS application using a MongoDB database. The test framework I use is Mocha and Supertest. Is it possible to setup MongoDB as an in-memory database which I can use to only test which then wipes away all my collections and documents when the test is done? 回答1: You can accomplish this using mongodb-memory-server. The package downloads a mongod binary to your home directory and instantiates a new memory-backed MondoDB instance as needed.

How to stub a promise such that it always resolves a particular value

若如初见. 提交于 2020-03-06 09:29:44
问题 I want to stub a promise such that it resolves to "failure" always when I run the test. I am not familiar with stubbing a promise. file.js const fs1 = require('fs'); let param =""; module.exports = { test, test1 } function test (outputParam) { //module.exports.param = fs1.readFileSync(outputParam); (async () => { module.exports.param = test1(); }) (); } function test1 () { let promise = new Promise((resolve,reject) => { let promiseVar = "success"; resolve(promiseVar); }) return promise; }