我是开玩笑单元测试的新手。
我想测试一个的组件,该组件 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]
)
}