试图用开玩笑来监视一个即发即弃方法中的响应

Trying to spyOn a response inside a fire-and-forget method with jest

我正在 node.js 开展一个项目,我正在其中设置合同测试 所以我想测试我的 API 请求和响应 这是我要测试的方法

import rp from 'request-promise';
    
const foo = async () : Promise<void> => { 
      await rp(options).then(resp => {
        return resp;
      })
    }

在我的测试中,我想检查 resp(这将在 运行 测试时由协议提供) 问题是我不知道如何捕获这个变量来检查它...... 我尝试使用间谍但没有成功,模拟也无济于事...

import requestPromise from "request-promise";

const response = jest.spyOn(requestPromise(options),"then") 

await foo()

expect(response).toReturnWith({test:"test"})

我也试过 spyOn requestPromise() "post" 但没有结果

有没有办法测试这个?

不清楚您在这里尝试的是什么。您提到了 Pact,但在您的示例中没有使用它。

为什么你需要监视请求?只是 return 来自 foo 本身的东西(而不是 void)并断言响应。

如果您使用 Pact,它会为您完成所有的 http 请求检查。并确保已发出请求。

然后您只需对响应进行断言。