Apabila menguji pengendalian pengecualian dalam Java, anda boleh menggunakan beberapa kaedah: menegaskan bahawa pengecualian dilemparkan (menggunakan assertThrows()), jangkakan pengecualian (gunakan expected()), sahkan mesej pengecualian (gunakan assertThat()). Melalui kaedah ini, pengendalian pengecualian boleh diuji sepenuhnya untuk memastikan ketepatan dan kebolehpercayaan kod. Sebagai contoh, untuk menguji pengecualian yang dilemparkan apabila nama pengguna adalah batal, anda boleh menggunakan kaedah assertThrows() untuk mengesahkan bahawa ia berkelakuan seperti yang diharapkan.
Cara menggunakan ujian unit untuk menguji pengendalian pengecualian Java
Ujian unit adalah penting untuk memastikan ketepatan dan kebolehpercayaan kod, termasuk ujian pengendalian pengecualian. Di Java, anda boleh menggunakan pelbagai kaedah untuk menguji pengendalian pengecualian, termasuk:
1 Tegaskan bahawa pengecualian dilemparkan
Anda boleh menggunakan kaedah assertThrows()
untuk menegaskan bahawa a. kaedah akan membuang pengecualian apabila dipanggil. Lemparkan pengecualian khusus: assertThrows()
方法来断言一个方法在调用时会抛出特定的异常:
import static org.junit.jupiter.api.Assertions.*; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); assertThrows(IllegalArgumentException.class, () -> userService.deleteUser(null)); } }
2. 预期异常
你还可以使用expected()
注解来自定义异常信息:
import org.junit.jupiter.api.Test; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test(expected = IllegalArgumentException.class) public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); userService.deleteUser(null); } }
3. 验证异常消息
要验证抛出的异常具有特定的消息,你可以使用assertThat()
方法:
import org.hamcrest.CoreMatchers; import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*; import org.junit.jupiter.api.Test; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentExceptionWithMessage() { UserService userService = new UserService(); try { userService.deleteUser(null); fail("Expected an IllegalArgumentException to be thrown"); } catch (IllegalArgumentException e) { assertThat(e.getMessage(), is("Username cannot be null")); } } }
实践案例
例如,考虑一个 UserService
类,它有一个方法 deleteUser()
import static org.junit.jupiter.api.Assertions.*; class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); assertThrows(IllegalArgumentException.class, () -> userService.deleteUser(null)); } }
2 Pengecualian yang dijangkakan
🎜🎜Anda juga boleh menggunakan anotasiexpected()
untuk menyesuaikan mesej pengecualian: 🎜rrreee🎜🎜 3. Sahkan mesej pengecualian🎜🎜🎜Untuk Untuk mengesahkan bahawa pengecualian yang dilemparkan mempunyai mesej tertentu, anda boleh menggunakan kaedah assertThat()
: 🎜rrreee🎜🎜Contoh Amalan🎜🎜🎜Sebagai contoh, pertimbangkan kelas UserService
yang mempunyai Kaedah deleteUser()
untuk memadam pengguna. Untuk menguji pengecualian yang dilemparkan apabila nama pengguna adalah batal, kita boleh menggunakan kaedah pengecualian yang dilemparkan assert: 🎜rrreee🎜 Dengan menggunakan kaedah ini, anda boleh menguji secara menyeluruh semua aspek pengendalian pengecualian dalam aplikasi Java anda untuk memastikan bahawa Kelakuan adalah seperti dijangka. 🎜Atas ialah kandungan terperinci Bagaimana untuk menggunakan ujian unit untuk menguji pengendalian pengecualian Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!