[英]How do I test that a function is called within a method using jest+enzyme+react+typescript?
[英]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.