我的路线调用一个函数startJob()
,它立即返回一个响应"作业开始。"它还调用函数runJob()
,该函数继续作业流程(异步)。
显然,我不能只做const jobResults = await startJob()
,因为该功能只会返回"工作开始。"在完成所有后续功能之前,作业的实际结果不可用。
所以我需要一种方法来检查所有函数完成后的测试结果,这意味着我需要知道所有函数何时完成。
流logResults()
中的最后一个函数无法监视,因为我需要它来调用(包括异步调用)。 Jasmine不允许我调用它,然后调用另一个检查结果的函数。
我的想法是在名为logResults()
的{{1}}末尾添加一个函数并监视它。 finishJob
不会做任何事情,所以我不需要通过它。
伪代码:
finishJob()
但是,纯粹出于测试原因,在代码中添加函数似乎是不好的做法。
其他可能的解决方案是使用某种节点观察器,状态更改机器,或者只是执行超时(也是不好的做法?但是快速实现......)
答案 0 :(得分:0)
我找到了一个我很满意的解决方案。我决定在流程的不同点开始测试。
而是调用await startJob()
开始测试,我打电话给await runJob()
,它启动异步过程并获得结果。
这样,我就可以知道进程何时结束(使用await
关键字obvs)并在那时检查结果。