Javascript jest窥探组件功能

Javascript jest窥探组件功能,javascript,reactjs,jestjs,enzyme,Javascript,Reactjs,Jestjs,Enzyme,我创建了一个jest spy来测试我的组件函数,并期望调用该函数。然而,它似乎没有被称为 这是我的测试: import React from 'react'; import { shallow, mount } from 'enzyme'; import SideNavBar from '../SideNavBar'; test('Should call mock function when clicking NavBar button', () => { cons

我创建了一个jest spy来测试我的组件函数,并期望调用该函数。然而,它似乎没有被称为

这是我的测试:

  import React from 'react';
  import { shallow, mount } from 'enzyme';
  import SideNavBar from '../SideNavBar';
  test('Should call mock function when clicking NavBar button', () => {
    const openNavSpy = jest.fn();
    const wrapper = shallow(<SideNavBar openNav={openNavSpy} />);
    wrapper.find('i').simulate('click');
    expect(openNavSpy).toHaveBeenCalledTimes(1);
  });
从“React”导入React;
从“酶”导入{shall,mount};
从“../SideNavBar”导入SideNavBar;
测试('单击导航栏按钮时应调用模拟函数',()=>{
const openNavSpy=jest.fn();
常量包装器=浅();
find('i').simulate('click');
期望(openNavSpy).已被调用时间(1);
});
这是我在侧栏中的一些相关代码:

openNav = () => {
    if (this.mySidenav) {
      this.mySidenav.style.width = '360px';
    }
  };
....
 <i className="fa fa-bars" aria-hidden="true" onClick={this.openNav} />
openNav=()=>{
if(this.mySidenav){
this.mySidenav.style.width='360px';
}
};
....

这个。openNav
引用的是类
openNav
,而不是您通过测试中的
SideBarNav
传入的间谍道具

test('Should call mock function when clicking NavBar button', () => {
    const wrapper = shallow(<SideNavBar />);
    const openNavSpy = jest.fn();

    wrapper.instance().openNav = openNavSpy;

    wrapper.find('i').simulate('click');

    expect(openNavSpy).toHaveBeenCalledTimes(1);
});

this.openNav
引用的是类
openNav
,而不是从测试中通过
SideBarNav
传入的间谍道具

test('Should call mock function when clicking NavBar button', () => {
    const wrapper = shallow(<SideNavBar />);
    const openNavSpy = jest.fn();

    wrapper.instance().openNav = openNavSpy;

    wrapper.find('i').simulate('click');

    expect(openNavSpy).toHaveBeenCalledTimes(1);
});