Rumah >hujung hadapan web >tutorial js >Menguji Aplikasi React dengan Cypress: Panduan Komprehensif
Pengujian ialah bahagian penting dalam proses pembangunan, memastikan aplikasi anda berkelakuan seperti yang diharapkan dan kekal teguh dari semasa ke semasa. Cypress ialah rangka kerja ujian hujung ke hujung yang berkuasa yang menawarkan pengalaman pembangun yang sangat baik dan disepadukan dengan lancar dengan rangka kerja JavaScript moden seperti React. Dalam siaran ini, kami akan meneroka cara menyediakan dan menguji aplikasi React menggunakan Cypress, memfokuskan pada contoh praktikal dan amalan terbaik.
Untuk bermula dengan Cypress dalam aplikasi React, ikut langkah berikut:
Langkah 1: Pasang Cypress
Mula-mula, pasang Cypress sebagai pergantungan pembangunan dalam projek React anda:
npm install cypress --save-dev
Langkah 2: Konfigurasikan Cypress
Buka Cypress Test Runner dengan menjalankan:
npx cypress open
Ini akan mencipta folder cypress dalam projek anda dengan konfigurasi lalai dan ujian contoh. Anda boleh menyesuaikan konfigurasi dalam fail cypress.json jika perlu.
Langkah 3: Buat Fail Ujian
Di dalam direktori cypress/e2e, buat fail ujian baharu, contohnya, react-app.spec.js. Fail ini akan mengandungi ujian Cypress anda untuk aplikasi React.
Menulis Ujian Cypress untuk React
Mari tulis beberapa ujian asas untuk aplikasi React. Kami akan merangkumi pemaparan komponen, interaksi dan penegasan.
Contoh: Menguji Komponen Reaksi
Katakan kita mempunyai komponen React ringkas yang dipanggil Counter:
import React, { useState } from 'react'; const Counter = () => { const [count, setCount] = useState(0); return ( <div> <h1>Counter: {count}</h1> <button onClick={() => setCount(count + 1)}>Increment</button> <button onClick={() => setCount(count - 1)}>Decrement</button> </div> ); }; export default Counter;
Kami boleh menulis ujian Cypress untuk mengesahkan kelakuan komponen:
describe('Counter Component', () => { beforeEach(() => { cy.visit('/'); }); it('should render the counter with initial value', () => { cy.get('h1').contains('Counter: 0'); }); it('should increment the counter', () => { cy.get('button').contains('Increment').click(); cy.get('h1').contains('Counter: 1'); }); it('should decrement the counter', () => { cy.get('button').contains('Increment').click(); cy.get('button').contains('Decrement').click(); cy.get('h1').contains('Counter: 0'); }); });
Dalam ujian ini:
Input Borang Pengujian
Katakan kita mempunyai borang log masuk dengan input nama pengguna dan kata laluan. Begini cara kami boleh mengujinya:
describe('Login Form', () => { beforeEach(() => { cy.visit('/login'); }); it('should allow a user to type in the username and password', () => { cy.get('input[name="username"]').type('testuser'); cy.get('input[name="password"]').type('password123'); }); it('should show an error message for invalid credentials', () => { cy.get('input[name="username"]').type('invaliduser'); cy.get('input[name="password"]').type('wrongpassword'); cy.get('button[type="submit"]').click(); cy.get('.error-message').should('be.visible').and('contain', 'Invalid credentials'); }); it('should redirect to dashboard on successful login', () => { cy.get('input[name="username"]').type('testuser'); cy.get('input[name="password"]').type('password123'); cy.get('button[type="submit"]').click(); cy.url().should('include', '/dashboard'); }); });
Permintaan API Mengejek
Anda boleh menggunakan Cypress untuk memintas dan mengejek permintaan API untuk menguji senario yang berbeza tanpa bergantung pada bahagian belakang:
describe('API Mocking', () => { beforeEach(() => { cy.intercept('POST', '/api/login', { statusCode: 200, body: { token: 'fakeToken' } }).as('loginRequest'); cy.visit('/login'); }); it('should mock a successful login', () => { cy.get('input[name="username"]').type('testuser'); cy.get('input[name="password"]').type('password123'); cy.get('button[type="submit"]').click(); cy.wait('@loginRequest').its('response.statusCode').should('eq', 200); cy.url().should('include', '/dashboard'); }); });
Cypress menyediakan cara yang mantap dan mesra pembangun untuk menguji aplikasi React. Dengan mengikuti langkah dan contoh yang digariskan dalam panduan ini, anda boleh menyediakan Cypress dalam projek React anda dan menulis ujian hujung ke hujung yang berkesan. Memanfaatkan ciri hebat dan amalan terbaik Cypress akan membantu anda membuat ujian yang boleh dipercayai, boleh diselenggara dan berkualiti tinggi, memastikan aplikasi React anda berfungsi seperti yang diharapkan.
Selamat menguji!
Atas ialah kandungan terperinci Menguji Aplikasi React dengan Cypress: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!