首頁 > web前端 > js教程 > 主體

為什麼應該開始在前端測試您的應用程式?

王林
發布: 2024-08-17 06:50:32
原創
834 人瀏覽過

但這些測試是為了什麼?

想像一下,您正在製作巧克力蛋糕,直到準備好後您才意識到忘記在麵團中添加糖,現在怎麼辦? !將您的應用程式想像成這個蛋糕麵糊,未經測試,它甚至可能一開始工作得很好,但在嘗試的某個時刻,結果可能不會達到預期。誰保證不會發生這種麻煩? !

Por que você deveria começar a testar sua aplicação no Front-End?

基於此範例,測試證明了您的程式碼量,它們確保一切都在正確的位置,即使您決定添加新層或功能覆蓋率也是如此。

一般來說,自動化測試基本上是為測試其他程式碼而建立的程式碼,以確保應用程式的品質。
由於品質是關鍵字,因此工程和產品團隊中的每個人都必須意識到測試產生的重要性和價值,以便它們能夠以自然的方式整合到交付中。

我為什麼要測試?

我在這裡提出一些理由來說服您立即開始在程式碼中實現測試:

故障安全代碼:測試有助於確保您的程式碼即使在新增功能或進行變更後也能正常運作而不會出現錯誤。

無需擔心的更改:應用程式維護將更加安全,因為您將能夠重構或更新程式碼,而不必擔心破壞某些內容,因為如果出現問題,測試會警告您。

更快的修復:透過自動化測試,您將能夠更輕鬆地修復問題,節省更多時間

部署時減少意外:您能想像剛完成部署並且已經收到用戶的電話,其中出現了可以預測的錯誤嗎? !這些測試可以準確地幫助預防

幫助您和您的QA 同事: 您知道什麼時候您完成該功能並將其傳遞給QA 進行測試,然後他給您一份包含357 個需要修復的問題的報告嗎?這個問題也會減少,因為你會預測到他可能遇到的大部分錯誤

測驗有哪些類型?

前端需要開發的測試有很多種類型,但今天我將重點放在其中三種:使用者介面測試(UI)、功能測試(端到端)和驗證測試舉例說明其中每一個,我將使用測試庫為React.js 中的應用程式中的簡單登入畫面建立測試。

使用者介面 (UI) 測試

使用者介面 (UI) 測試檢查元件是否如預期渲染,除了基於渲染之外,它們還檢查重要元素是否存在,例如表單欄位、按鈕和標籤。

it('should render login form', () => {
  render(<LoginForm  />);
  expect(screen.getByLabelText(/email/i)).toBeInTheDocument();
  expect(screen.getByLabelText(/senha/i)).toBeInTheDocument();
  expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument();
});
登入後複製

正在測試的內容: 此測試確保 LoginForm 元件呈現介面的基本元素:電子郵件和密碼欄位以及登入按鈕。 screen.getByLabelText 依關聯標籤搜尋元素, screen.getByRole 按按鈕的文字和功能搜尋按鈕。

功能測試(端到端)

功能測試或端到端(E2E)測試,從使用者的角度檢查應用程式的整個功能,模擬與介面的真實交互,例如填寫表單和單擊按鈕,並評估是否應用程式按預期回應交互。

it('should call onLogin with the username and password when submitted', async () => {
  const handleLogin = jest.fn();
  render(<LoginForm onLogin={handleLogin} />);

  fireEvent.change(screen.getByLabelText(/email/i), {
    target: { value: 'larissa.tardivo@email.com.br' },
  });
  fireEvent.change(screen.getByLabelText(/senha/i), {
    target: { value: '123456' },
  });

  await fireEvent.click(screen.getByRole('button', { name: /login/i }));

  await waitFor(() => {
    expect(handleLogin).toHaveBeenCalledWith({
      email: 'larissa.tardivo@email.com.br',
      password: '123456'
    })
  })

  await waitFor(() => {
    expect(handleLogin).toHaveBeenCalledTimes(1)
  })

});
登入後複製

正在測試的內容: 這裡,透過填寫電子郵件和密碼字段,然後點擊登入按鈕來模擬使用者與登入表單的互動。該測試還檢查 onLogin 函數是否使用正確的資料調用,並且僅被調用一次。

驗證測試

驗證測試可確保應用程式驗證無效輸入並顯示適當的錯誤訊息。這些測試對於驗證表單是否有效處理不正確的資料並向使用者提供足夠的回饋非常重要。

test('should show error messages for invalid inputs', async () => {
  render(<LoginForm onLogin={jest.fn()} />);

  fireEvent.change(screen.getByLabelText(/email/i), {
    target: { value: 'invalid-email' },
  });
  fireEvent.change(screen.getByLabelText(/senha/i), {
    target: { value: '123' },
  });

  await fireEvent.click(screen.getByRole('button', { name: /login/i }));

  expect(await screen.findByText(/Email inválido/i)).toBeInTheDocument();
  expect(await screen.findByText(/A senha deve ter pelo menos 6 caracteres/i)).toBeInTheDocument();
});
登入後複製

O que está sendo testado: Aqui verificamos se o formulário está exibindo mensagens de erro adequadas quando os campos de e-mail e senha forem preenchidos com dados inválidos. Fazemos a simulação da entrada de valores incorretos verificando se as mensagens de erro esperadas são exibidas.

Entendeu por que você deve testar?

Em um mundo onde a experiência do usuário e a qualidade do software são prioridade, os testes no front-end desempenham um papel fundamental em garantir que nossas aplicações não apenas funcionem corretamente, mas também proporcionem uma experiência fluida e sem bugs.

Ao integrar esses testes no seu fluxo de desenvolvimento, você está não apenas prevenindo problemas antes que eles se tornem grandes dores de cabeça, mas também construindo uma base de código mais confiável e resistente. Cada tipo de teste tem uma camada diferente de verificação, e juntos, eles formam uma grande camada de segurança que ajuda a garantir a qualidade e a funcionalidade de sua aplicação.

Lembre-se, assim como em uma receita de bolo onde cada ingrediente tem seu papel crucial, cada tipo de teste tem sua função específica no processo de desenvolvimento e desenvolver uma combinação equilibrada de testes vai além de uma prática recomendada, é uma necessidade para qualquer equipe que se empenha em entregar um software de alta qualidade.

Por que você deveria começar a testar sua aplicação no Front-End?

Então, da próxima vez que você estiver desenvolvendo um novo recurso ou corrigindo um bug, pense nos testes como seus aliados indispensáveis. Eles são a chave para uma aplicação mais robusta, confiável e, acima de tudo, mais satisfatória para seus usuários.

以上是為什麼應該開始在前端測試您的應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板