Jest(技术上,使用ReactTestRenderer进行Jest快照测试)does not work with ReactDOM.findDOMNode。
我已经看过我可以使用Jest模拟解决这个问题。例如,如果我的ChannelScanner
组件使用包含react-widgets' SelectList的RadioButtonSet
组件,则将以下代码放在ChannelScanner.test.js
中可以使快照测试正常工作:
jest.mock('../../src/components/forms/RadioButtonSet', () => 'RadioButtonSet');
然而,这似乎打破了封装:RadioButtonSet的测试必须根据它使用的组件以及他们使用的传递组件来设置模拟,并且必须为每个组件重复这项工作。
处理此问题的最佳方法是什么?没有启用automock,有没有一个好方法可以说,"这个模块知道它需要在出现时自行模拟?"