如何在Jest&Enzyme中模拟内联引用

时间:2019-08-01 11:12:27

标签: reactjs jestjs enzyme

我是开玩笑和酶的新手,我正在尝试模拟组件的引用。我已经看到了许多解决方案,但是似乎它们与我创建引用的方式无关。

我的裁判声明:

.header_links_ul li{
  padding: 0px 20px;
  border-right:1px solid #000;
}
.header_links_ul li:last-child{
  padding: 0px 20px;
  border-right:none;
}

,然后当我在组件中使用ref时:

<input type=email ref={ (input) => { this.email = input; } } /> ,我在测试用例中遇到错误:this.email.focus();的焦点。

测试用例:

undefined

在这里,我尝试为我的测试用例实现一种解决方案,但这似乎不起作用。任何帮助,将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

您将希望将模拟添加到组件本身的实例中,如下所示:

it('details', () => {
    wrapper = shallow(<Componentes  />);
    const instance = wrapper.instance();
    instance.email = { focus: jest.fn() };
    wrapper.find('.signin-button').simulate('click');
});