首页 > 解决方案 > 如何使用 Jest 和 Enzyme 测试功能组件中的 if 条件?

问题描述

isAuthorized() 方法是一个全局方法。

import { isAuthorized } from 'xxx';

const Comp = (props) => {
  const shouldShow = isAuthorized('abcd');
 

  return (
    { shouldShow ? <A /> : <B /> }
  );
}

我试图通过 shouldshow 作为这样的道具:

const props = {
  shouldshow: true
};

const wrapper = getShallowWrapper(props);
expect(wrapper.find('A').exists()).toBe(true);

它不起作用。搜索了很多,但没有找到解决方案。

也尝试了下面的方法,没有奏效。

const mockIsAuthorized = jest.spyOn(wrapper.instance(), 'isAuthorized'); 
const mockIsAuthorized = wrapper.instance().isAuthorized;
mockIsAuthorized = jest.fn();

有谁知道如何对这个 if 条件进行单元测试?或者说,如何模拟函数组件内部的函数?

谢谢

标签: reactjsjestjsenzyme

解决方案


推荐阅读