【发布时间】:2021-03-24 19:13:02
【问题描述】:
我的服务器应该在启动之前执行一些工作,并记录成功。例如:
const http = require('http');
function startServer() {
const server = http.createServer((req, res) => {
res.write('hello\n');
res.end();
}).listen(3000);
console.log('server is ready');
}
//as 'job' we will use timer
setTimeout(startServer, 10000);
我需要创建将检查的集成测试:
- 日志包含有关服务器准备就绪的信息
- 请求/响应工作正确
问题:
- 我应该为每个测试用例或足够的单个实例运行服务器吗?
- 启动服务器之前的作业需要一些时间。 我怎么知道什么时候需要发送 要求?我不能依赖日志,因为在这种情况下,第二次测试将 取决于第一个结果。
【问题讨论】:
-
为什么不使用 async-await ??
-
如果您在测试之间重用组件实例,则一个测试可能会污染另一个重用相同组件的测试的结果。如果您不重用组件,那么您可能会花费额外的时间来设置和拆除每个测试。 您可以权衡利弊,并自行决定“应该”做什么。
-
对于您的第二个问题,请包含一个由客户端和服务器通用的测试框架拥有的编排组件。让服务器在达到侦听状态时通知协调器。让客户端等待协调器告诉它是提交请求的适当时间。
标签: javascript node.js testing server integration-testing