我正在使用Typescript / React创建.tsx组件。我想对React组件中的方法进行一些单元测试。说:
export default class SomeComponent extends React.Component<undefined, SomeComponentState> {
someMethod = (string: someInput) => {
return someInput + someInput;
}
render () .. // etc
}
在SomeComponent.test.tsx文件中,如何导入和测试
someMethod
的方法,而不是整个组件本身?我试过了:
import {someMethod} from "./someComponent";
尽管没有运气-它似乎不可调用,并且会引发TS错误:“组件没有导出成员someMethod”
最佳答案
它是类的成员,因此您需要一个实例来对其进行测试。您不能直接导入。如果不需要访问实例上的其他任何内容,
您可以将其提取为单独的函数并导出。
或者,可以使用enzyme进行如下测试:
从“酶”导入{shallow};
it('.....', () => {
const wrapper = shallow(<SomeComponent />);
(wrapper.instance() as SomeComponent).someMethod('someValue');
})