我正在开发一些我正在使用Hapi作为REST API的Web服务器的东西,我正在使用Jest进行单元测试。我只是将其设置为自己测试REST路由 - 在创建的Hapi服务器上使用server.inject
。
只要测试通过,这就非常有效。如果测试失败,那么一切都会完成,但过程不会终止。
供参考,我的测试如下:
// @flow
import createServer from '../server';
describe('Hapi Healthchecks', () => {
let server;
beforeEach(async () => {
server = await createServer();
});
test('Hapi Healthchecks respond correctly', async () => {
const response = await server.inject({
method: 'GET',
url: '/health',
});
expect.assertions(1);
expect(response.statusCode).toBe(200);
});
});
createServer
返回Glue.compose
的结果,因此它是已配置但尚未启动的Hapi服务器。我没有在测试中启动服务器 - 没有必要 - 因此没有调用server.stop()
。但是,如果我添加其中一个或两个,那么它没有任何区别。
只要测试通过断言,那么一切都很好。如果测试因任何原因失败,那么其他所有内容仍会运行 - 包括afterEach
和afterAll
调用,但该过程无法退出。
对于我所缺少的任何建议,以使其正常工作?