Menyediakan Ujian Penyepaduan
Konfigurasikan projek anda untuk menyokong ujian penyepaduan, termasuk mengurus persekitaran dan kebergantungan ujian.
Menyediakan Ujian Penyepaduan ialah pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi merangkumi sejumlah 4 pelajaran.
Pengenalan Persediaan Ujian Integrasi
Selamat datang ke persediaan Ujian Integrasi! Selepas mempelajari perbezaan antara ujian unit dan ujian integrasi, tiba masanya untuk menyediakan projek anda.
Persediaan yang betul amat penting supaya ujian integrasi dapat dijalankan dengan boleh dipercayai. Persediaan ini memastikan ujian anda terasing, boleh diulang dan tidak mengganggu persekitaran pembangunan anda.
Folder Sumber Berasingan
Langkah pertama ialah mengasingkan ujian integrasi daripada ujian unit dengan jelas. Ini membantu menyusun pangkalan kod dan membolehkan alat binaan mengendalikannya secara berbeza.
- Ujian Unit: Biasanya berada dalam
src/test/java. - Ujian Integrasi: Selalunya diletakkan dalam folder khusus seperti
src/it/javaatausrc/integrationTest/java.
Pemisahan ini memudahkan anda menjalankannya pada peringkat yang berbeza dalam proses binaan.
Maven: Konfigurasikan Sumber IT
Jika anda menggunakan Maven, anda perlu memberitahu pom.xml supaya mengenali folder sumber ujian integrasi yang baharu. build-helper-maven-plugin biasanya digunakan untuk tujuan ini.
Ia menambah src/it/java sebagai direktori sumber ujian, lalu membolehkan Maven menyusun ujian integrasi anda.
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>add-integration-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
</project>Gradle: Konfigurasikan Sumber IT
Bagi pengguna Gradle, mentakrifkan set sumber berasingan untuk ujian integrasi adalah mudah. Ini membolehkan anda menyusun dan menjalankan ujian integrasi secara berasingan.
Contoh di bawah menunjukkan cara mentakrifkan set sumber integrationTest dan mengkonfigurasikan kebergantungannya.
sourceSets {
integrationTest {
java.srcDir 'src/it/java'
resources.srcDir 'src/it/resources'
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
configurations {
integrationTestImplementation.extendsFrom testImplementation
integrationTestRuntimeOnly.extendsFrom testRuntimeOnly
}
task integrationTest(type: Test) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
shouldRunAfter test
}
check.dependsOn integrationTestKebergantungan Ujian Penting
Ujian integrasi sering memerlukan kebergantungan khusus yang mungkin tidak diperlukan oleh ujian unit. Antaranya termasuk:
- Pangkalan data dalam memori: Seperti H2 atau HSQLDB untuk ujian pangkalan data yang pantas dan terasing.
- Testcontainers: Pustaka untuk memulakan bekas perkhidmatan sebenar (pangkalan data, baris gilir mesej) dalam Docker.
- Rangka kerja ujian web: Untuk menguji lapisan web (contohnya,
spring-testSpring danMockMvc).
Tambahkan kebergantungan ini pada skop kebergantungan ujian atau ujian integrasi anda.
Pemalam Maven Failsafe
Walaupun pemalam Surefire Maven menjalankan ujian unit, Pemalam Maven Failsafe direka untuk ujian integrasi.
Ia melaksanakan ujian semasa fasa integration-test dan verify, bagi memastikan sebarang persediaan (seperti memulakan pelayan) berlaku sebelum ujian dijalankan dan proses pembersihan berlaku selepasnya.
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.2.5</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
</project>Konfigurasi Ujian Khusus
Ujian integrasi sering memerlukan konfigurasi yang berbeza daripada aplikasi utama atau ujian unit anda. Contohnya, ujian tersebut mungkin bersambung kepada pangkalan data ujian tertentu atau menggunakan URL perkhidmatan luaran yang berbeza.
Amalan yang baik ialah menggunakan fail konfigurasi berasingan (contohnya, application-it.properties untuk Spring Boot) yang mengatasi tetapan lalai semasa pelaksanaan ujian integrasi.
Menyediakan Persekitaran Ujian
Sebelum ujian integrasi dijalankan, anda biasanya perlu menyediakan persekitaran. Ini mungkin melibatkan:
- Memulakan pangkalan data terbenam.
- Memulakan bekas Docker untuk perkhidmatan luaran menggunakan Testcontainers.
- Memulakan data ujian tertentu.
Anotasi @BeforeAll dan @AfterAll JUnit amat sesuai untuk menyediakan dan membersihkan sumber sekali bagi setiap kelas ujian.
Contoh Persediaan Persekitaran
Berikut ialah contoh mudah yang menunjukkan cara anda boleh menggunakan @BeforeAll untuk 'menyediakan' sumber bagi ujian integrasi anda. Persediaan ini dijalankan sekali sebelum semua ujian dalam kelas tersebut.
Cuba jalankan contoh ini untuk melihat mesej persediaan.
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class SimpleIntegrationSetupTest {
@BeforeAll
static void setupEnvironment() {
System.out.println("--- Setting up test environment (e.g., starting a database) ---");
// In a real scenario, you'd start a container or connect to a test DB here.
}
@AfterAll
static void tearDownEnvironment() {
System.out.println("--- Tearing down test environment (e.g., stopping a database) ---");
// In a real scenario, you'd stop containers or clean up resources here.
}
@Test
void testSomethingIntegrated() {
System.out.println(" Running an integration test...");
// Your actual integration test logic would go here.
// assert something...
}
public static void main(String[] args) {
// This main method allows the snippet to be runnable.
// In a real project, tests are run by build tools.
System.out.println("This is a placeholder for running the test.");
// You would typically use JUnit's API to run tests programmatically if not using Maven/Gradle.
}
}Soalan Menjalankan IT
Anda telah menyediakan projek untuk ujian integrasi menggunakan Maven. Perintah Maven manakah yang biasanya digunakan untuk melaksanakan ujian ini dengan menggunakan pemalam Failsafe?
Imbas Kembali: Ujian Berstruktur
Syabas! Anda telah mempelajari cara menyediakan projek untuk ujian integrasi.
- Kami mengasingkan ujian integrasi ke dalam folder sumbernya sendiri (contohnya,
src/it/java). - Alat binaan seperti Maven (dengan
build-helper-maven-plugindanmaven-failsafe-plugin) atau Gradle dikonfigurasikan untuk mengenali dan menjalankannya. - Kebergantungan khusus dan fail konfigurasi khusus memastikan persekitaran ujian yang terasing.
@BeforeAlldan@AfterAllmembantu mengurus persediaan dan pembersihan sumber.
Persediaan kukuh ini menyediakan asas yang mantap untuk menulis ujian integrasi yang berkesan!
Pelajari Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menyediakan Ujian Penyepaduan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi, termasuk “Menyediakan Ujian Penyepaduan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyediakan Ujian Penyepaduan”?
Konfigurasikan projek anda untuk menyokong ujian penyepaduan, termasuk mengurus persekitaran dan kebergantungan ujian. Anda berlatih Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Menyediakan Ujian Penyepaduan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi ini?
Ya. Setiap pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Ujian Unit berbanding Ujian Penyepaduan
- Menyediakan Ujian Penyepaduan
- Menguji Interaksi Pangkalan Data
- Menguji API Luaran dengan WireMock