【问题标题】:Mock external library call using jest使用 jest 模拟外部库调用
【发布时间】:2021-09-13 23:29:10
【问题描述】:

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(()=&gt; "testParsedValue");

尝试像 const mockedLib = jest.mock("react-native-base64", () =&gt; jest.fn()); 那样模拟整个库本身,然后模拟该变量的 base64,但似乎没有任何效果。

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

【问题讨论】:

    标签: javascript reactjs unit-testing jestjs ts-jest


    【解决方案1】:

    尝试使用 Jest 模块工厂来模拟它,例如

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

    【讨论】:

      猜你喜欢
      • 2022-06-30
      • 2019-08-10
      • 1970-01-01
      • 2020-11-06
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2020-01-04
      相关资源
      最近更新 更多