Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi · Pelajaran

Menyediakan Ujian Penyepaduan

Konfigurasikan projek anda untuk menyokong ujian penyepaduan, termasuk mengurus persekitaran dan kebergantungan ujian.

Pelajaran 2 daripada 411 langkah

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/java atau src/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 integrationTest

Kebergantungan 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-test Spring dan MockMvc).

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-plugin dan maven-failsafe-plugin) atau Gradle dikonfigurasikan untuk mengenali dan menjalankannya.
  • Kebergantungan khusus dan fail konfigurasi khusus memastikan persekitaran ujian yang terasing.
  • @BeforeAll dan @AfterAll membantu mengurus persediaan dan pembersihan sumber.

Persediaan kukuh ini menyediakan asas yang mantap untuk menulis ujian integrasi yang berkesan!

Percuma untuk bermula

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

  1. Ujian Unit berbanding Ujian Penyepaduan
  2. Menyediakan Ujian Penyepaduan
  3. Menguji Interaksi Pangkalan Data
  4. Menguji API Luaran dengan WireMock
← Kembali ke Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi