试图用开玩笑来监视一个即发即弃方法中的响应
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 请求检查。并确保已发出请求。
然后您只需对响应进行断言。
我正在 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 请求检查。并确保已发出请求。
然后您只需对响应进行断言。