我正在使用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”
答案 0 :(得分:3)
它是该类的成员,因此您需要一个实例来测试它。您无法直接导入它。如果它不需要访问实例上的任何其他内容, 您可以将其作为单独的函数提取并导出。
或者使用enzyme,您可以使用以下内容进行测试: 从&#39;;
导入{浅}it('.....', () => {
const wrapper = shallow(<SomeComponent />);
(wrapper.instance() as SomeComponent).someMethod('someValue');
})