zl程序教程

您现在的位置是:首页 >  后端

当前栏目

[Node.js] Testing ES6 Promises in Node.js using Mocha and Chai

ES6JSNode in and Using Testing promises
2023-09-14 08:59:19 时间

Writing great ES6 style Promises for Node.js is only half the battle. Your great modules must include tests as well to ensure future iterations don't break them. In this lesson, I show you a simple ES6 Promise in Node.js, then walk you through creating tests in Mocha using chai and chai-as-promised to test both resolve and reject methods.

 

Install:

npm i -g mocha
npm i -D chai chai-as-promised

 

Index.js

exports.foo = (opts) => {
    return new Promise(
        (resolve, reject) => {
            if(opts === 1) {
                reject('Found an error');
            } else {
                setTimeout( () => {
                    console.log(opts);
                    resolve(opts);
                }, 500);
            }
        }
    );
};

exports.foo(2)
.catch(err => {
    console.log(err);
});

 

test/index.js:

const chai = require('chai');
const expect = chai.expect;
const chaiAsPromised = require('chai-as-promised');

const index = require('../index.js');

chai.use(chaiAsPromised);

describe('Function foo', () => {
    it('should accpet anything but one', () => {
        const promise = index.foo(0);
        return expect(promise).to.eventually.equal(0);
    });

    it('should throw error is apply one', () => {
        const promise = index.foo(1);
       // return expect(promise).to.be.rejected;
        return expect(promise).to.be.rejectedWith('Found an error');
    })
});