监视全局获取(命中哪个 URL)?

问题描述 投票:0回答:1

我有这个函数来监视全局获取并返回一个值

const spy = jest.spyOn(global, 'fetch').mockResolvedValue({json: jest.fn().mockResolvedValue(user)})

我想知道调用此函数时会命中哪个API 路由。例如我想做:

console.log(spy.showFetchURL)

并让它返回

'http//:localhost/**user**'
用于调试目的

javascript unit-testing jestjs fetch react-testing-library
1个回答
0
投票

您可以像这样使用

.mockImplementation()
,例如:

jest.spyOn(global, 'fetch').mockImplementation((url) => {
  switch (url) {
    case 'https://example-1.com?param1=true&param2=false':
      return Promise.resolve({
        status: 200,
        json: () => Promise.resolve({
          // mocked data object/array here
        })
      })
    break

    case 'https://example-2.com?param1=false&param2=true&param3=something':
      return Promise.resolve({
        status: 200,
        json: () => Promise.resolve({
          // mocked data object/array here
        })
      })
    break

    // ...etc
  }
})
© www.soinside.com 2019 - 2024. All rights reserved.