Jest + Typescript如何测试React组件中的方法?

时间:2017-10-17 12:50:16

标签: reactjs typescript jest

我正在使用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”

1 个答案:

答案 0 :(得分:3)

它是该类的成员,因此您需要一个实例来测试它。您无法直接导入它。如果它不需要访问实例上的任何其他内容, 您可以将其作为单独的函数提取并导出。

或者使用enzyme,您可以使用以下内容进行测试:     从&#39;;

导入{浅}
it('.....', () => {
    const wrapper = shallow(<SomeComponent />);
    (wrapper.instance() as SomeComponent).someMethod('someValue');
})