我正在使用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');
})

07-28 09:59