您可以在调用中将组件类型设置为shallow。这有点样板,但是它使类型安全。好处是包装器是类型安全的,而不仅仅是您拉出的实例。
import Component from ’./Component’// Wrapper will kNow the type of the component.const wrapper = enzyme.shallow<Component>(<Component {...props} />);it(’does something’, () => { expect(wrapper.instance().someInstanceMethod(input)).toBe(true); // You can also get the state from the wrapper. expect(wrapper.state().someComponentState).toBeTruthy();});解决方法
我想测试一个React类组件。
假设我的班级中有一个方法可以根据当前状态和道具来计算内容。
import Component from ’./Component’const wrapper = enzyme.shallow(<Component {...props} />);it(’does something’,() => { expect(wrapper.instance().someInstanceMethod(input)).toBe(true);});
打字稿说Property ’someInstanceMethod’ is not defined on type Component<any,any>。我该如何告诉Typscript我的班级状况以及班级拥有什么方法?
有一个很好的例子吗?