Kiểm tra ngoại lệ mong đợi của JUnit: @Test (dự kiến)

Mục lục:

Anonim

JUnit cung cấp cơ sở để theo dõi ngoại lệ và cũng để kiểm tra xem mã có ném ngoại lệ mong đợi hay không.

Junit4 cung cấp một cách dễ dàng và dễ đọc để kiểm tra ngoại lệ, bạn có thể sử dụng

  • Tham số tùy chọn (dự kiến) của chú thích @test và
  • Để theo dõi thông tin, "fail ()" có thể được sử dụng

Trong khi Kiểm tra ngoại lệ, bạn cần đảm bảo rằng lớp ngoại lệ bạn đang cung cấp trong tham số tùy chọn của chú thích @test là giống nhau. Điều này là do bạn đang mong đợi một ngoại lệ từ phương pháp bạn đang Kiểm tra Đơn vị, nếu không thử nghiệm JUnit của chúng tôi sẽ thất bại.

Ví dụ @ Test (dự kiến ​​= IllegalArgumentException.class)

Bằng cách sử dụng tham số "dự kiến", bạn có thể chỉ định tên ngoại lệ mà thử nghiệm của chúng tôi có thể đưa ra. Trong ví dụ trên, bạn đang sử dụng " IllegalArgumentException" sẽ bị kiểm tra ném ra nếu nhà phát triển sử dụng đối số không được phép.

Ví dụ sử dụng @test (dự kiến)

Chúng ta hãy hiểu kiểm tra ngoại lệ bằng cách tạo một lớp Java với một phương thức ném một ngoại lệ. Bạn sẽ xử lý nó và kiểm tra nó trong một lớp thử nghiệm. Hãy xem xét JUnitMessage.java có một phương thức chỉ đơn giản thực hiện một phép toán dựa trên đầu vào mà người dùng nhận được. Nếu bất kỳ đối số bất hợp pháp nào được nhập vào, nó sẽ ném ra "ArithmeticException " . Xem bên dưới:

gói guru99.junit;lớp công khai JUnitMessage {tin nhắn chuỗi riêng tư;public JUnitMessage (Thông báo chuỗi) {this.message = tin nhắn;}public void printMessage () {System.out.println (tin nhắn);int chia = 1/0;}public String printHiMessage () {message = "Xin chào!" + tin nhắn;System.out.println (tin nhắn);trả lại tin nhắn;}}

Giải thích mã:

  • Dòng mã 7: Tạo một phương thức khởi tạo được tham số hóa với khởi tạo trường.
  • Dòng mã 11-14: Tạo một phương thức cho phép toán.
  • Dòng mã 18: Tạo một phương pháp khác để in tin nhắn.
  • Dòng mã 20: Tạo một chuỗi mới để in tin nhắn.
  • Dòng mã 21: In tin nhắn mới được tạo ở dòng 20.

Hãy tạo một lớp thử nghiệm cho lớp java trên để xác minh ngoại lệ.

Xem bên dưới lớp kiểm tra đối với ngoại lệ đơn vị kiểm tra (ArithmeticException tại đây) ném từ lớp java bên trên:

AirthematicTest.java

gói guru99.junit;nhập static org.junit.Assert.assertEquals;nhập khẩu org.junit.Test;hạng công cộng AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = new JUnitMessage (tin nhắn);@Test (dự kiến ​​= ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Thông báo Junit đang in");junitMessage.printMessage ();}@Kiểm trapublic void testJUnitHiMessage () {message = "Xin chào!" + tin nhắn;System.out.println ("Thông báo Junit đang in");khẳng địnhEquals (tin nhắn, junitMessage.printMessage ());}}

Giải thích mã:

  • Dòng mã 13: Sử dụng chú thích @Test để tạo thử nghiệm của chúng tôi. Khi bạn thực thi phương thức các lớp ở trên, nó sẽ gọi một phép toán. Ở đây, Arithmetic Exception được mong đợi, vì vậy bạn đang liệt kê nó như một tham số trong @Test.
  • Dòng mã 17: Gọi printMessage () JUnitMessage.java
  • Dòng mã 18: Tạo một phương pháp khác để in tin nhắn HI.

Nếu bạn thực thi lớp thử nghiệm này, phương thức thử nghiệm sẽ được thực thi với mỗi tham số được xác định. Trong ví dụ trên, phương thức kiểm tra được thực hiện năm lần.

Hãy thực hiện nó và xác minh kết quả. Xem bên dưới lớp chạy thử nghiệm để thực thi JunitTestExample.java

Đầu ra:

Đây là kết quả hiển thị kiểm tra thành công mà không có dấu vết lỗi như được đưa ra bên dưới:

Tóm lược:

  • Kiểm tra ngoại lệ là một tính năng đặc biệt được giới thiệu trong JUnit4. Trong hướng dẫn này, bạn đã học cách kiểm tra ngoại lệ trong JUnit bằng cách sử dụng @test (ngoại lệ)
  • Junit cung cấp cơ sở để theo dõi ngoại lệ và cũng để kiểm tra xem mã có ném ngoại lệ hay không
  • Đối với thử nghiệm ngoại lệ, bạn có thể sử dụng
    • Tham số tùy chọn (dự kiến) của chú thích @test và
    • Để theo dõi thông tin, "fail ()" có thể được sử dụng