下面是一个针对NodeJS Express应用程序的测试示例,测试条件为"如果(require.main === module),则app.listen(port)"。
const request = require('supertest');
const app = require('./app'); // 导入你的Express应用程序
describe('Express应用程序测试', () => {
let server;
beforeAll(() => {
server = app.listen(3000); // 运行应用程序并监听端口3000
});
afterAll((done) => {
server.close(done); // 关闭服务器连接
});
describe('根路径测试', () => {
it('应该返回Hello World', async () => {
const response = await request(app).get('/');
expect(response.status).toBe(200);
expect(response.text).toBe('Hello World');
});
});
});
在这个示例中,我们使用了supertest
库来发送HTTP请求并进行断言,以验证我们的应用程序是否按预期工作。在beforeAll
钩子函数中,我们启动了应用程序,并在afterAll
钩子函数中关闭了服务器连接。
然后,我们编写了一个根路径测试,发送一个GET请求到根路径/
并断言返回的状态码为200,返回的文本为"Hello World"。
你需要将app
替换为你的Express应用程序的导入路径。