我的微服务A有这种行为:当它从服务C接收到一条消息时,它返回200,进行一些计算,然后向服务B发送新的http请求。
我想通过模拟来自C的请求来测试A,并模拟B来侦听来自A的请求。 这里的问题是,这里简单的异步方法还不够,因为来自A的相关输出被发送到另一个实体(即不作为对C的响应)。
我想通过从C发送请求并设置超时来检查是否有东西到达B来做到这一点,但这不是很优雅。 有什么办法可以通过测试框架做到这一点? (更喜欢摩卡咖啡)
答案 0 :(得分:0)
建议尝试使用回调或Promise-“用Mocha测试异步代码再简单不过了!只需在测试完成后调用回调即可。通过向it()添加回调(通常命名为done),Mocha将知道它应该等待该函数被调用以完成测试。此回调既接受Error实例(或其子类),也接受虚假的值;其他任何情况都会导致测试失败。“
请参阅本主题https://mochajs.org/#asynchronous-code和https://mochajs.org/#working-with-promises