使用节点 Js 对 REST API 进行单元测试

Unit testing for REST API using node Js

我想为我的 REST API 调用编写单元测试(使用 mocha 和 chai)。 谁能给我更好的指导或任何以前编写的代码,以便我可以轻松执行。

互联网上有多个指南以 mochachai 开头。比如官方文档:

使用 npm 你可以同时安装:

  • 摩卡咖啡:npm install --save-dev mocha
  • 柴:npm install chai

此外,对于 HTTP,您需要 chai-httpnpm install chai-http

有了它,您就可以开始编写测试代码了。

首先,您需要导入包到您的测试文件中

var chai = require('chai'), chaiHttp = require('chai-http');

chai.use(chaiHttp);

并使用您想要的断言,例如:

var expect = chai.expect;.

测试使用此模式:

describe('Test', () => {
    it("test1", () => {
    })

    it("test2", () => {
    })
})

其中 describe 是声明一个 'suite' 测试。在每个套件中,您都可以放置多个测试,甚至是另一个套件。

如果您使用 mocha yourFile.js 执行此代码,您将得到:

Test
    √ test1
    √ test2

现在可以开始添加路由进行测试了。例如这样的事情:

it("test1", () => {
    chai.request('yourURL')
    .get('/yourEndpoint')
    .query({value1: 'value1', value2: 'value2'})
    .end(function (err, res) {
        expect(err).to.be.null;
        expect(res).to.have.status(200);
    });
})

如果您想使用自己的快递应用程序,您可以使用

var app = require('../your/app')

... 

it("test1", () => {
    chai.request(app)
    ...
}
...

Chai 文档中还描述了多个选项。