Khẳng định của Junit & AssertEquals với ví dụ

Junit Assert là gì?

Assert là một phương thức hữu ích trong việc xác định trạng thái Đạt hoặc Không đạt của một trường hợp thử nghiệm, Các phương thức khẳng định được cung cấp bởi lớp org.junit.Assert mở rộng lớp java.lang.Object.

Có nhiều loại xác nhận khác nhau như Boolean, Null, Identical, v.v.

Junit cung cấp một lớp có tên là Assert, cung cấp một loạt các phương thức xác nhận hữu ích trong việc viết các trường hợp kiểm thử và để phát hiện lỗi kiểm tra

Các phương thức khẳng định được cung cấp bởi lớp org.junit.Assert mở rộng lớp java.lang.Object .

Trong hướng dẫn này, bạn sẽ học-

  • Phương thức JUnit Assert
  • Boolean
  • Đối tượng rỗng
  • Giống hệt nhau
  • Khẳng định bằng
  • Khẳng định mảng bằng
  • Thông báo không thành công
  • JUnit khẳng địnhEquals
  • Xác nhận dấu chấm động
  • Ví dụ về JUnit Assert

Phương thức JUnit Assert

Boolean

Nếu bạn muốn kiểm tra các điều kiện boolean (đúng hoặc sai), bạn có thể sử dụng các phương pháp xác nhận sau

  1. khẳng định (điều kiện)
  2. khẳng địnhFalse (điều kiện)

Ở đây điều kiện là một giá trị boolean.

Đối tượng rỗng

Nếu bạn muốn kiểm tra giá trị ban đầu của một đối tượng / biến, bạn có các phương pháp sau:

  1. khẳng địnhNull (đối tượng)
  2. khẳng địnhNotNull (đối tượng)

Ở đây đối tượng là đối tượng Java, ví dụ: khẳng địnhNull (thực tế);

Giống hệt nhau

Nếu bạn muốn kiểm tra xem các đối tượng có giống hệt nhau (tức là so sánh hai tham chiếu đến cùng một đối tượng java) hay khác nhau.

  1. khẳng định tên (dự kiến, thực tế), nó sẽ trả về true nếu dự kiến ​​== thực tế
  2. khẳng địnhNotSame (dự kiến, thực tế)

Khẳng định bằng

Nếu bạn muốn kiểm tra sự bằng nhau của hai đối tượng, bạn có các phương pháp sau

  • khẳng địnhEquals (dự kiến, thực tế)

Nó sẽ trả về true nếu: dự kiến.equals (thực tế) trả về true.

Khẳng định mảng bằng

Nếu bạn muốn kiểm tra tính bình đẳng của các mảng, bạn có các phương pháp sau như được cung cấp bên dưới:

  • khẳng địnhArrayEquals (dự kiến, thực tế)

Phương thức trên phải được sử dụng nếu các mảng có cùng độ dài, đối với mỗi giá trị hợp lệ cho i , bạn có thể kiểm tra nó như được đưa ra dưới đây:

  • khẳng địnhEquals (mong đợi [i], thực tế [i])
  • khẳng địnhArrayEquals (mong đợi [i], thực tế [i])

Thông báo không thành công

Nếu bạn muốn ném bất kỳ lỗi xác nhận nào, bạn có fail () luôn dẫn đến kết quả không thành công.

  • Fail (thông báo);

Bạn có thể có phương thức xác nhận với một tham số Chuỗi bổ sung làm tham số đầu tiên. Chuỗi này sẽ được thêm vào trong thông báo lỗi nếu xác nhận không thành công. Ví dụ: fail (thông báo) có thể được viết là

  • khẳng địnhEquals (tin nhắn, mong đợi, thực tế)

JUnit khẳng địnhEquals

Bạn có khẳng định Equals (a, b) dựa trên phương thức equals () của lớp Đối tượng.

  • Ở đây nó sẽ được đánh giá là a.equals (b).
  • Ở đây, lớp được kiểm tra được sử dụng để xác định một quan hệ bình đẳng phù hợp.
  • Nếu một lớp không ghi đè phương thức equals () của lớp Object , nó sẽ nhận được hành vi mặc định của phương thức equals () , tức là nhận dạng đối tượng.

Nếu ab là các nguyên thủy như byte , int , boolean , v.v. thì các thao tác sau sẽ được thực hiện cho khẳng định Equals (a, b):

ab sẽ được chuyển đổi thành kiểu đối tượng trình bao bọc tương đương của chúng ( Byte, Integer , Boolean , v.v.), và sau đó a.equals (b) sẽ được đánh giá.

Ví dụ: Hãy xem xét các chuỗi được đề cập bên dưới có cùng giá trị, hãy kiểm tra nó bằng cách sử dụng khẳng định

String obj1 = "Junit";String obj2 = "Junit";khẳng địnhEquals (obj1, obj2);

Câu lệnh khẳng định ở trên sẽ trả về true như obj1.equals (obj2) trả về true.

Xác nhận dấu chấm động

Khi bạn muốn so sánh các kiểu dấu phẩy động (ví dụ: double hoặc float ), bạn cần có thêm delta tham số bắt buộc để tránh các vấn đề về lỗi làm tròn khi thực hiện so sánh dấu phẩy động.

Xác nhận đánh giá như được đưa ra dưới đây:

  • Math.abs (dự kiến ​​- thực tế) <= delta

Ví dụ:

khẳng địnhEquals (aDoubleValue, anotherDoubleValue, 0,001)

Ví dụ về JUnit Assert

Ví dụ dưới đây trình bày cách xác nhận một điều kiện bằng cách sử dụng các phương thức khẳng định JUnit.

Hãy tạo một lớp thử nghiệm đơn giản có tên là Junit4AssertionTest.java và một lớp chạy thử nghiệm TestRunner.java .

Bạn sẽ tạo một vài biến và các câu lệnh khẳng định quan trọng trong JUnit.

Trong ví dụ này, bạn sẽ thực thi lớp thử nghiệm của chúng tôi bằng TestRunner.java

Bước 1) Cho phép tạo một lớp bao gồm tất cả các phương thức câu lệnh khẳng định quan trọng trong junit:

Junit4AssertionTest.java

gói guru99.junit;nhập static org.junit.Assert. *;nhập khẩu org.junit.Test;public class Junit4AssertionTest {@Kiểm trapublic void testAssert () {//Sự định nghĩa biếnString string1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";Chuỗi string5 = null;int biến1 = 1;int biến2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Các câu lệnh khẳng địnhkhẳng địnhEquals (string1, string2);khẳng địnhSame (string3, string4);khẳng địnhNotSame (string1, string3);khẳng địnhNotNull (string1);khẳng địnhNull (string5);khẳng địnhTrue (biến1 

Bước 2) Bạn cần tạo một lớp chạy thử nghiệm để thực thi lớp trên:

TestRunner.java

gói guru99.junit;nhập org.junit.runner.JUnitCore;nhập org.junit.runner.Result;nhập org.junit.runner.notification.Failure;lớp công khai TestRunner {public static void main (String [] args) {Kết quả kết quả = JUnitCore.runClasses (Junit4AssertionTest.class);for (Lỗi không thành công: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Kết quả ==" + result.wasSuccessful ());}}

Bước 3) Cho phép phân tích đầu ra mong đợi từng bước:

Hãy xem xét lần lượt tất cả các câu khẳng định:

  1. khẳng địnhEquals (string1, string2);

Bây giờ so sánh string1 = "Junit" với string2 = "Junit" với phương thức bằng của lớp đối tượng. Thay thế phương thức khẳng địnhEquals từ phương thức java.lang.Object.equals ():

string1.equals (string2) => trả về true

Vì vậy, khẳng địnhEquals (string1, string2) sẽ trả về true .

  1. khẳng địnhSame (string3, string4);

Chức năng "khẳng định ()" là để kiểm tra xem hai đối tượng có tham chiếu đến cùng một đối tượng hay không.

Vì string3 = "test" và string4 = "test" có nghĩa là cả string3 và string4 đều thuộc cùng một kiểu, do đó, khẳng địnhSame (string3, string4) sẽ trả về true .

  1. khẳng địnhNotSame (string1, string3);

Chức năng "khẳng địnhNotSame ()" là để kiểm tra xem hai đối tượng không tham chiếu đến cùng một đối tượng.

Vì string1 = "Junit" và string3 = "test" có nghĩa là cả string1 và string3 đều thuộc các kiểu khác nhau, do đó, khẳng địnhNotSame (string1, string3) sẽ trả về true .

  1. khẳng địnhNotNull (string1);

Chức năng "khẳng địnhNotNull ()" là để kiểm tra xem một đối tượng không phải là null.

Vì string1 = "Junit" là một giá trị không phải null, nên khẳng địnhNotNull (string1) sẽ trả về true .

  1. khẳng địnhNull (string5);

Chức năng "khẳng địnhNull ()" là để kiểm tra xem một đối tượng có phải là null hay không.

Vì string5 = null là một giá trị null nên khẳng địnhNull (string5) sẽ trả về true .

  1. khẳng địnhTrue (biến1

Chức năng "khẳng định ()" là để kiểm tra xem một điều kiện có đúng không.

Vì biến1 = 1 và biến2 = 2, điều này cho thấy điều kiện biến1 true .

  1. khẳng địnhArrayEquals (airethematicArrary1, airethematicArrary2);

Chức năng "khẳng địnhArrayEquals ()" là để kiểm tra xem mảng mong đợi và mảng được kết quả có bằng nhau không. Loại Mảng có thể là int, long, short, char, byte hoặc java.lang.Object.

Vì airethematicArrary1 = {1, 2, 3} và airethematicArrary2 = {1, 2, 3} cho thấy cả hai mảng đều bằng nhau nên khẳng địnhArrayEquals (airethematicArrary1, airethematicArrary2) sẽ trả về true

Vì tất cả bảy câu lệnh khẳng định của lớp Junit4AssertionTest.java đều trả về true, do đó khi bạn thực thi lớp khẳng định thử nghiệm, nó sẽ trả về một thử nghiệm thành công. (xem đầu ra bên dưới)

Bước 4) Nhấp chuột phải vào Junit4AssertionTest.java và nhấp vào runAs-> JUnit. Bạn sẽ thấy kết quả như bên dưới:

Đầu ra trên cho thấy một kết quả thử nghiệm thành công như mong đợi.

Tóm lược:

Trong hướng dẫn này, bạn đã học được tất cả các loại phương thức xác nhận quan trọng do JUnit cung cấp. Ngoài ra, bạn đã thấy các ví dụ về câu lệnh khẳng định. Điều này cho thấy rằng nếu tất cả các câu lệnh khẳng định đều trả về true, thì GUI kiểm tra sẽ trả về kết quả đúng và nếu kiểm tra đơn không thành công, nó sẽ trả về kết quả không thành công.

thú vị bài viết...