簡體   English   中英

如何在 @testing-library/react-native 中測試異步處理程序?

[英]How do I test an async handler in @testing-library/react-native?

我無法解決這個問題,但這可能是一個簡單的問題。

假設我有這個:

   <MyComponent amazingAction={action}/>
   <MagicButton/>

所以它本質上是一個帶有句柄的組件和另一個在單擊時將執行異步操作的組件。 由於該異步操作,將觸發MyComponent中的處理程序。

我本質上想測試如果我同時渲染並觸發按鈕點擊,處理程序將被調用。

我試過這個:

const maybeThisWorks = jest.fn();

const { getByText } = render(
      <MyComponent amazingAction={maybeThisWorks}/>
      <MagicButton title="My Button"/>
);

let button = getByText("My Button");
fireEvent.press(button);

expect(maybeThisWorks).toHaveBeenCalled();

使用waitFor 您需要將測試 function 更改為async

await waitFor(() => expect(maybeThisWorks).toHaveBeenCalled());

暫無
暫無

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

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