簡體   English   中英

Jest + Typescript我如何測試React組件中的方法?

[英]Jest + Typescript how do I test a method in the React component?

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

它是類的成員,因此您需要一個實例來對其進行測試。 您不能直接導入。 如果不需要訪問實例上的其他任何內容,則可以將其提取為單獨的函數並導出。

或者使用酶,您可以使用以下方法進行測試:從“酶”中導入{shallow};

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM