如何解决如何在supertest中处理多个集成测试
我开始了解集成测试,并想在我的 expressjs 应用中测试我的所有控制器。
所以我有 Controller1、Controller2 和 Controller3。
我想为分别命名为“Controller1.integration.test.ts”、“Controller2.integration.test.ts”等的集成字段创建 3 个单独的文件...
我无法实现的是在所有测试中维护单个服务器。
import { before } from 'mocha';
import request from 'supertest';
import * as server from "../../Server";
let app:any;
describe('GET /api/home',function() {
before(async () => {
app = await server.startRestServer();
})
it('returns 200',function(done) {
request(app)
.get('/api/home3')
.expect(200,done);
});
it('returns 302',function(done) {
request(app)
.get('/api/home2')
.expect(302,done);
});
});
但我不知道我怎么可能在其他集成测试文件中使用 app
变量?
如果我将此模式应用于不同的文件,很明显,会出现一个错误,告诉我某些东西已经在我的端口上侦听。
所以我的问题是:我应该如何处理更大项目的多个集成测试?
我正在考虑将部分测试注入主文件并立即运行所有内容,但我不确定这是否是一个好的做法。
类似于:
import { before } from 'mocha';
import request from 'supertest';
import * as server from "../../Server";
let app:any;
describe('integration tests',function() {
before(async () => {
app = await server.startRestServer();
})
require('./test1.integration.test.ts')();
require('./test2.integration.test.ts')();
require('./test3.integration.test.ts')();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。