使用玩笑模拟外部库调用
Mock external library call using jest
jest 和 React 代码测试的新手。
我正在测试一个文件,该文件从 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,像这样mock。
base64.decode = jest.fn(()=> "testParsedValue");
尝试像 const mockedLib = jest.mock("react-native-base64", () => jest.fn());
一样模拟整个库本身,然后模拟该变量的 base64,但似乎没有任何效果。
如有任何帮助,我们将不胜感激!谢谢!
尝试使用 Jest module factory 来模拟它,例如
jest.mock('react-native-base64', () => ({
decode: () => "testParsedValue"
}));
jest 和 React 代码测试的新手。 我正在测试一个文件,该文件从 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,像这样mock。
base64.decode = jest.fn(()=> "testParsedValue");
尝试像 const mockedLib = jest.mock("react-native-base64", () => jest.fn());
一样模拟整个库本身,然后模拟该变量的 base64,但似乎没有任何效果。
如有任何帮助,我们将不胜感激!谢谢!
尝试使用 Jest module factory 来模拟它,例如
jest.mock('react-native-base64', () => ({
decode: () => "testParsedValue"
}));