Junit Assert & AssertEquals với ví dụ

Khẳng định Junit là gì?

Khẳng định 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 kiểm thử. 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 Assert, lớp này 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 thử.

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

JUnit Khẳng định phương pháp

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 thức khẳng định sau

  1. khẳng định Đúng(đ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)

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

Đồng nhất

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

  1. khẳng địnhSame(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ằng nhau của các mảng, bạn có thể sử dụng các phương pháp sau đây:

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

Phương pháp trên phải được sử dụng nếu các mảng có cùng độ dài, cho mỗi giá trị hợp lệ cho i, bạn có thể kiểm tra nó như 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 lỗi

Nếu bạn muốn đưa ra bất kỳ lỗi xác nhận nào, bạn có Thất bại() điều đó luôn dẫn đến một phán quyết thất bại.

  • Thất bại (tin nhắn);

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

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

JUnit khẳng định

Bạn có khẳng địnhEquals(a,b) dựa vào bằng () phương thức của lớp Object.

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

If ab là những người nguyên thủy như byte, int, boolean, v.v. thì những điều sau đây sẽ được thực hiện cho assertEquals(a,b):

ab sẽ được chuyển đổi thành loại đối tượng trình bao bọc tương đương của chúng (Byte, số nguyên, Boolean, v.v.), và sau đó a.bằng( 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 địnhTrue

String obj1="Junit";
String obj2="Junit";
assertEquals(obj1,obj2);

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

Xác nhận dấu phẩy động

Khi bạn muốn so sánh các loại dấu phẩy động (ví dụ: tăng gấp đôi or phao), bạn cần thêm một tham số bắt buộc đồng bằng để 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.

Khẳng định đánh giá như được đưa ra dưới đây:

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

Ví dụ:

khẳng địnhEquals(aDoubleGiá trị, khácDoubleGiá trị, 0.001 )

JUnit Khẳng định ví dụ

Ví dụ dưới đây minh họa cách xác nhận một điều kiện bằng cách sử dụng JUnit khẳng định các phương pháp

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

Bạn sẽ tạo một số 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) Hãy 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

package guru99.junit;		

import static org.junit.Assert.*;				
import org.junit.Test;		


public class Junit4AssertionTest {				

    @Test		
    public void testAssert(){					
        		
        //Variable declaration		
        String string1="Junit";					
        String string2="Junit";					
        String string3="test";					
        String string4="test";					
        String string5=null;					
        int variable1=1;					
        int	variable2=2;					
        int[] airethematicArrary1 = { 1, 2, 3 };					
        int[] airethematicArrary2 = { 1, 2, 3 };					
        		
        //Assert statements		
        assertEquals(string1,string2);					
        assertSame(string3, string4);					
        assertNotSame(string1, string3);					
        assertNotNull(string1);			
        assertNull(string5);			
        assertTrue(variable1<variable2);					
        assertArrayEquals(airethematicArrary1, airethematicArrary2);					
    }		
}		

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

TestRunner.java

package guru99.junit;		

import org.junit.runner.JUnitCore;		
import org.junit.runner.Result;		
import org.junit.runner.notification.Failure;		

public class TestRunner {				
			public static void main(String[] args) {									
      Result result = JUnitCore.runClasses(Junit4AssertionTest.class);					
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      

Bước 3) Hãy phân tích từng bước sản lượng dự kiến:

Xem xét tất cả các tuyên bố khẳng định từng cái một:

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

Bây giờ hãy 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ề giá trị đúng

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

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

Chức năng “assertSame()” 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 cùng loại nên khẳng địnhSame(string3, string4) sẽ trả về đúng.

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

Chức năng “assertNotSame()” 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 loại khác nhau, do đó, khẳng địnhNotSame(string1, string3) sẽ trả về đúng.

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

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

Vì string1= “Junit” là giá trị không null nên khẳng địnhNotNull(string1) sẽ trả về đúng.

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

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

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

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

Chức năng “assertTrue()” là để kiểm tra xem điều kiện có đúng hay không.

Vì biến 1=1 và biến 2=2, điều này cho thấy biến 1 đúng.

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

Chức năng của “assertArrayEquals()” là để kiểm tra xem mảng dự kiến ​​và mảng kết quả có bằng nhau hay không. Kiểu 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ề đúng

Bởi vì tất cả bảy tuyên bố khẳng định của Junit4AssertionTest.java class trả về true, do đó khi bạn thực thi lớp xác nhận kiểm tra, nó sẽ trả về một bài kiểm tra 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 đầu ra như dưới đây:

JUnit Khẳng định ví dụ

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

Tổng kết

Trong hướng dẫn này, bạn đã tìm hiểu tất cả các loại phương pháp xác nhận quan trọng được cung cấp bởi JUnit. 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ề đúng thì GUI kiểm tra sẽ trả về kết quả đúng và nếu một lần kiểm tra duy nhất thất bại thì nó sẽ trả về kết quả không thành công.