Description this lesson

Trong những bài trước, mình đã IF Else để verify kết quả một cách thủ công hơi lâu và dài dòng. Giờ đây tới TestNG thì chúng ta chỉ cần  sử dụng 1 method là assertEquals() hay assertTrue(). Trong bài này mình sẽ giới thiệu thêm các method assert khác. Đây là các method tiêu biểu, bạn nào muốn xem full list thì xem ở link này.

https://javadoc.jitpack.io/com/github/cbeust/testng/master/javadoc/


I. Những method assert tiêu biểu do TestNG cung cấp

  • assertEquals(actual, expected)

Dùng để so sánh bằng nhau 2 phần tử có cùng TYPE. Xin nhắc lại, chỉ so sánh 2 phần tử có cùng Type. Method này có thể so sánh rất nhiều loại: dữ liệu nguyên thủy như int, long, double, char, boolean; String; Object; Collections; Maps…
Lưu ý: cái gì phần tử thực tế (actual), ta đặt ở vị trí argument 1. Cái nào là phần tử ta mong đợi (expected), ta đặt ở argument 2.

  • assertNotEquals(actual, expected)

Tương tự như phần trên, chỉ khác là so sánh KHÔNG bằng nhau.

  • assertTrue(boolean condition)

Ta dùng trong trường hợp, ta mong đợi kết quả trả về là true. Nó tương đương với việc sử dụng assertEquals(actual, expected) khi actual và expected có TYPE là boolean.

  • assertFalse(boolean condition)

Ta dùng trong trường hợp, ta mong đợi kết quả trả về là false.

  • assertNull(Object)

Ta sử dụng trong trường hợp ta mong đợi rằng cái Object ta đang nhắm tới là Null.

  • assertNotNull(Object)

Ta sử dụng trong trường hợp ta mong đợi rằng cái Object ta đang nhắm tới là Not Null.


II. Ứng dụng thực tế

Mình đã từng viết if else và dùng các method isDisplayed() ở các page với việc return lại kiểu Boolean. Có nghĩa là nếu Page đó đang được mở ra thì isDisplayed() sẽ return true và ngược lại.

Class Login:

public void verifyCheckbox() {

WebElement msgDisplayed = driver.findElement(By.xpath("//div[@id='txtAge']"));

   if (msgDisplayed.isDisplayed() == true) {
      System.out.println("Vừa chọn nó xong.");
      System.out.println(msgDisplayed.getText());
   }
}
 

Từ đấy, mình sẽ sửa lại Test Case và sử dụng assertTrue

@Test
public void verifyCheckbox() {
    WebElement msgDisplayed = driver.findElement(By.xpath("//div[@id='txtAge']"));
    
    Assert.assertTrue(msgDisplayed .isDisplayed());
}​

Tương tự ta sửa cho Test Case dạng so sánh bằng.

public class AnhTesterPage {

    WebElement button_CheckAll = driver.findElement(By.xpath("//input[@id='check1']"));

    System.out.println(button_CheckAll.getAttribute("value")); // get "Check All"
    
    if (button_CheckAll.getAttribute("value").trim().toString().equals("Check All")) {
	   button_CheckAll.click(); // Click để check all
    } else {
	    System.out.println("Không phải Text/ Không lấy được Text");
    }
}​

Từ đây, ta cũng sửa Test Case Login thành công và sử dụng assertTrue

@Test
public void AnhTesterPage() {

	    WebElement button_CheckAll = driver.findElement(By.xpath("//input[@id='check1']"));

	    System.out.println(button_CheckAll.getAttribute("value")); // get "Check All";
	    
	    Assert.assertEquals(button_CheckAll.getAttribute("value").trim().toString(), "Check All");

	    button_CheckAll.click(); // Click để check all​
	    
}

 

Teacher

Teacher

Anh Tester

Tester

Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu

Teach the world online

Create an online video course, reach students across the globe, and earn money

Course content