使用jest模拟外部库调用



新的笑话和反应代码测试。我正在测试一个文件,该文件从react-native-base64导入base64,并解码从useEffect后端系统获取的值。下面是示例代码:

import base64 from "react-native-base64";

const xyzWork = async () => {
const value = await - fetch data from backend
const decodedValue = base64.decode(value);
...
...
...
}
useEffect(() => {
xyzWork();
}, []);

return <div><SomeComponent /></div>;

我在使用jest测试此代码时面临困难。我尝试了多种方法来测试相同的,但它失败与多个错误。

一些方法,导入base64相同的方式和模拟像这样。base64.decode = jest.fn(()=> "testParsedValue");

尝试模拟整个库本身,如const mockedLib = jest.mock("react-native-base64", () => jest.fn());,然后模拟该变量的base64,但似乎没有工作。

任何帮助将不胜感激!谢谢!

您可以使用Jest模块工厂模拟它,例如

jest.mock('react-native-base64', () => ({
decode: () => "testParsedValue"
}));

最新更新