gpt4 book ai didi

node.js - 在expressjs中编写测试的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:37 26 4
gpt4 key购买 nike

我在网上学习了一些教程,发现可以使用 mocha 编写测试,并且我成功编写了一个在网上找到的小测试

var assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});

现在,在此之后,我开始使用 expressjs 应用程序对其进行测试。我不确定如何对其编写正确的测试。

目前我需要在一个窗口中手动运行服务器并在另一个窗口中运行测试。另外一个挫折是数据库,每次运行这些测试时,我都需要默认删除数据,即使用单独的数据库进行测试并在完成后删除内容。

因为大部分代码都是restfull api,所以我使用request实际提出请求。

如果有人能给我指出正确的方向,这样我就不必为了运行测试而手动启动服务器并清除数据库,我将非常感激。

The express application is generated using express-generator package

最佳答案

导出您的 Express 应用程序,然后在测试中需要它并将其包装在您的发件人中。我对 request 不太熟悉,但我相信 chai-http 或 supertest 可以做类似的事情。它还允许您通过 NYC 等代码覆盖工具运行此代码。

import { expect } from 'chai';
import request from 'supertest';
import server from '../../server/server';

describe('Test server', () => {
describe('Fetch component', () => {
it('Dont find route - return 404', done => {
request(server)
.get('/randomlocation')
.expect(404, done);
});
it('Return component', (done) => {
request(server)
.get('/login')
.expect(200, done);
});
});
});

关于node.js - 在expressjs中编写测试的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com