我使用fetch API和nock来模拟post请求。测试看起来是这样的:
it('should handle the triple bracket replacements ', async () => {
nock('https://jives.dev')
.post('/', {
bestCat: 'cat'
})
.reply(200, {
data: '12345'
})
const data = await retrieveData({
endpoint: 'https://jives.dev/',
configuration: JSON.stringify({
method: 'POST',
body: {
bestCat: 'cat'
}
}),
auth: {cat: 'cat'}
})
expect(data).toEqual({data: '12345'})
})retrieveData函数运行fetch,并简单地将端点和配置参数映射到请求中,如下所示:
fetch('https://jives.dev/', {
method: 'POST',
body: {
bestCat: 'cat'
}
})我最终得到一个错误,就好像nock没有模仿请求一样。我可以让它对get请求起作用,但是我不确定为什么它在这个例子中不起作用。错误消息看起来像是在尝试发出post请求,而不是从nock返回数据。
- Expected - 3
+ Received + 1
- Object {
- "data": "12345",
- }
+ [Error]发布于 2020-05-17 05:20:16
这是因为我没有清理jest套件中的所有mock。下面解决了这个问题。
afterEach(nock.cleanAll)
afterAll(nock.restore)https://stackoverflow.com/questions/61843564
复制相似问题