2021-08-24 TIL
7609 ワード
こしょう
Feelings(感覚・主観)
Findings(ラーニングポイント)
mockingとは?
mockFn.mockReturnValue("I am a mock!");
console.log(mockFn()); // I am a mock!
JavaScriptは、コード(手動)によってイベントをどのように励起するか。
// <button>Submit</button>
fireEvent(
getByText(container, 'Submit'),
new MouseEvent('click', {
bubbles: true,
cancelable: true,
}),
)
-JestのMock関数を使用して、関数に渡されたコールバックが呼び出されたか、またはコールバック関数がバインドされたイベントがトリガーされたときに呼び出されたコールバックをテストできます.import {render, screen, fireEvent} from '@testing-library/react'
const Button = ({onClick, children}) => (
<button onClick={onClick}>{children}</button>
)
test('calls onClick prop when clicked', () => {
const handleClick = jest.fn()
render(<Button onClick={handleClick}>Click Me</Button>)
fireEvent.click(screen.getByText(/click me/i))
expect(handleClick).toHaveBeenCalledTimes(1)
})
https://testing-library.com/docs/dom-testing-library/api-events/ Testing Library About Queries
クエリーは、ライブラリが提供するページ上の要素を検索する方法をテストします.クエリーには、get、find、queryなど、さまざまなタイプがあります.これらの違いは、要素が見つからない場合、クエリーがエラーになるかどうか、またはPromiseを返して再試行するかどうかです.
単一要素
getBy...: クエリーの一致ノードを返します.一致する要素がない場合、または複数の一致が見つかった場合、説明エラーが発生します(getAllBy複数の要素が使用されると予想される場合).
queryBy...: クエリに一致するnull要素がない場合は、一致するノードが返されます.これは存在しない要素にとって有用です.複数の一致が見つかった場合、エラーが発生します(queryAllByとして確認された場合は、このオプションを使用します).
findBy...: 指定したクエリーに一致する要素が見つかった場合は、解析されたPromiseが返されます.1000ミリ秒(デフォルトタイムアウト)後に要素が見つからなかったり、複数の要素が見つかったりした場合、デートは拒否されます.複数の要素を検索する場合はfindAllByを使用します.
マルチファクタ
getAllBy...: クエリが一致するすべてのノードの配列を返し、一致する要素がない場合、エラーが発生します.
queryAllBy...: クエリーでは、一致するすべてのノードの配列が返され、一致する[]要素がない場合は、空の配列()が返されます.
findAllBy...: 指定したクエリーに一致する要素が見つかった場合、要素配列によって解析される規則が返されます.1000ミリ秒のデフォルトタイムアウト後に要素が見つからない場合、デートは拒否されます.
findByメソッドはgetBy*クエリとの組合せwaitForです.彼らはwaitForオプションを最後の買収(await screen.findByText(「text」、queryOptions、waitForOptions)として受け入れた.
2つの簡単なルール
確認(自己宣言)
困难のためあきらめないで、引き続き努力しましょう!
Reference
この問題について(2021-08-24 TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@kokoball0/2021-08-24-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol