2021-08-24 TIL

7609 ワード

こしょう

  • テストライブラリJestを学びました.
  • プログラマコードテスト
  • の学習を開始
  • 余剰ワクチン予約成功後接種.
  • Feelings(感覚・主観)

  • 法案とよく知っていると思っていましたが、これは私の錯覚です・・・初めてライブラリを見た瞬間は複雑でしたが、勉強したのでできると思いました.そうですね.
  • Findings(ラーニングポイント)


    mockingとは?

  • シミュレーションとは、ユニットテストを作成する際に、コード依存部分を「偽」(mock)で置き換える方法である.
  • mockFn.mockReturnValue("I am a mock!");
    console.log(mockFn()); // I am a mock!
  • を使用して、ReturnValue(戻り値)関数をシミュレートして、偽関数がどの値を返すべきかを設定できます.
  • JavaScriptは、コード(手動)によってイベントをどのように励起するか。

  • Element.FireEvent(「イベント名」)/IE 8バージョン
  • Elemenet.DispatchEvent(「イベント名」)/IE 9バージョン、クロム、波幅など
  • fireEvent(node: HTMLElement, event: Event)
  • // <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つの簡単なルール

  • まず、自動化テストに失敗しない限り、新しいコードは作成されません.
  • 重複除外.
  • 確認(自己宣言)


    困难のためあきらめないで、引き続き努力しましょう!