我有一个看起来非常简单的场景,但我无法在文档中找到满足我需要的示例。我也搜索过,但显然没有发现任何东西......
我想从一个类中模拟一个函数,该类已初始化并在我实际测试的函数中使用。
这是一个例子:
// helpers.js
import API from './api'
export const validateUsername = async (username) => {
const myApi = new API()
try {
await myApi.validate(username)
return 'valid'
} catch (e) {
return 'invalid'
}
}
在我的测试中,我想模拟 myApi.validate
以使其返回有效响应或抛出。但出于某种原因,我找不到这样做的方法。
// helpers-test.js
it('returns "invalid" if the username is invalid', async () => {
// here I need to mock myApi.validate to return or throw
})
我真的不确定为什么我还没有弄清楚这一点,似乎很常见,对吗?
有人吗?
最佳答案
感谢@Volodymyr,我弄明白了。
我认为我的主要问题是在模拟它之前 导入 lib。
jest.mock('path/to/api')
import {Api} from 'path/to/api'
const validateMock = jest.fn().mockImplementation(() => {...})
Api.prototype.validate = validateMock
// now it works
关于javascript - Jest 模拟类实例函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52860251/