玩笑反应如何模拟功能并返回响应



我是开玩笑单元测试的新手。

我想测试一个的组件,该组件 to geolocation getCurrentPosition()方法。

对于每个呼叫,我要返回一个新的坐标对象的功能。

我已经阅读了各种文章和教程,但我仍在挣扎。

有什么想法?

您可以使用global.navigator访问Navigator对象。因此,要模拟getCurrentPosition只需将jest.fn分配给它:

global.navigator = {
  getCurrentPosition : jest.fn()
}

因此,如何返回每个呼叫的新坐标。最简单的解决方案将是全球计数器

const coords = [[1, 2], [2, 3]]
let counter = -1
global.navigator = {
  getCurrentPosition: jest.fn(() {
    counter++
    return coords[counter]
  })
}

,或者您可以使用模拟的calls属性

const coords = [[1, 2], [2, 3]]
global.navigator = {
  getCurrentPosition: jest.fn(() =>
    coords[global.navigator.getCurrentPosition.mock.calls.length]
  )
}

相关内容

  • 没有找到相关文章

最新更新