Rumah >Java >javaTutorial >Ujian Hujung Ke Hujung untuk Aplikasi Java React
Ujian hujung ke hujung (E2E) memastikan aplikasi anda berfungsi secara keseluruhan dengan mensimulasikan aliran kerja pengguna sebenar merentas bahagian belakang (Java) dan hujung hadapan (React). Panduan ini merangkumi alatan, persediaan dan langkah untuk melaksanakan ujian E2E.
Untuk ujian E2E dalam timbunan Java-React, gunakan alatan yang boleh berinteraksi dengan bahagian belakang dan bahagian hadapan:
Alat Pengujian Depan:
Alat Pengujian Belakang:
Alat Penyepaduan:
Contoh (Ujian REST Assured untuk API):
import io.restassured.RestAssured; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; public class ApiTest { @Test public void testGetUser() { RestAssured.baseURI = "http://localhost:8080"; given() .when() .get("/users/1") .then() .statusCode(200) .body("name", equalTo("John Doe")); } }
Ketergantungan Luar Olok-olok:
Bekas Bahagian Belakang:
FROM openjdk:11 COPY target/myapp.jar /app/myapp.jar ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]
npm install cypress --save-dev
Buat Ujian Cypress:
describe('Login Page', () => { it('should log in successfully', () => { cy.visit('http://localhost:3000/login'); cy.get('input[name="username"]').type('admin'); cy.get('input[name="password"]').type('password123'); cy.get('button[type="submit"]').click(); cy.url().should('include', '/dashboard'); }); });
API Olok-olok dalam Cypress:
cy.intercept('POST', '/api/login', { statusCode: 200, body: { token: 'fake-token' } });
Ujian Belakang:
given() .contentType("application/json") .body("{ \"username\": \"admin\", \"password\": \"password123\" }") .when() .post("/login") .then() .statusCode(200) .body("token", notNullValue());
Ujian Depan:
import io.restassured.RestAssured; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; public class ApiTest { @Test public void testGetUser() { RestAssured.baseURI = "http://localhost:8080"; given() .when() .get("/users/1") .then() .statusCode(200) .body("name", equalTo("John Doe")); } }
FROM openjdk:11 COPY target/myapp.jar /app/myapp.jar ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]
Ujian Belakang dalam CI:
npm install cypress --save-dev
Ujian Depan dalam CI:
describe('Login Page', () => { it('should log in successfully', () => { cy.visit('http://localhost:3000/login'); cy.get('input[name="username"]').type('admin'); cy.get('input[name="password"]').type('password123'); cy.get('button[type="submit"]').click(); cy.url().should('include', '/dashboard'); }); });
Integrasi Penuh:
cy.intercept('POST', '/api/login', { statusCode: 200, body: { token: 'fake-token' } });
Tindakan GitHub untuk CI:
given() .contentType("application/json") .body("{ \"username\": \"admin\", \"password\": \"password123\" }") .when() .post("/login") .then() .statusCode(200) .body("token", notNullValue());
Memikat untuk Jawa:
@Test public void testCreateAndRetrieveItem() { String itemJson = "{ \"name\": \"Test Item\" }"; // Create Item given() .contentType("application/json") .body(itemJson) .post("/createItem") .then() .statusCode(201); // Retrieve Items given() .get("/items") .then() .statusCode(200) .body("[0].name", equalTo("Test Item")); }
Papan Pemuka Cypress:
describe('Item Management', () => { it('should display the newly created item', () => { cy.visit('http://localhost:3000/items'); cy.get('button#create-item').click(); cy.get('input[name="itemName"]').type('Test Item'); cy.get('button#save-item').click(); cy.contains('Test Item').should('exist'); }); });
Panduan ini menyediakan rangka kerja ujian E2E yang mantap untuk aplikasi Java dan React. Beritahu saya jika anda memerlukan bantuan untuk melaksanakan mana-mana bahagian tertentu!
Atas ialah kandungan terperinci Ujian Hujung Ke Hujung untuk Aplikasi Java React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!