[Bài 17] Những method Assert do TestNG cung cấp

I. Những method assert do TestNG cung cấp:

Trong những bài trước, mình đã giới thiệu về việc sử dụng Assert để verify kết quả một cách tự động nhưng mới chỉ dừng lại ở việc sử dụng 1 method là assertEquals(). 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.

  • 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. Mình chưa từng sử dụng loại này và cũng ko biết nó có thể áp dụng trong trường hợp nào. Có thể dùng để debug trong trường hợp NullPointerException chăng?

  • 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ế:

Nếu bạn có đọc bài trước mình viết thì có thể thấy rằng, mình đang muốn sửa việc sử dụng API selenium từ class Test case. Đây là 1 cách:

Mình sẽ viết 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 boolean isDisplayed() {
	if (Links.URL_LOGIN.equals(driver.getCurrentUrl())) {
		return true;
	} else {
		return false;
	}
}

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

@Test
public void loginWithBlankField() {
	loginPg = new LoginPage(driver);
	loginPg.login("", "");
	Assert.assertTrue(loginPg.isDisplayed());
}

Tương tự ta sửa cho Test Case Login còn lại. Để sửa được thì ta cần phải có một class DashboardPage, nơi để viết ra 1 method isDisplayed tương tự như trên.

public class DashboardPage {

	WebDriver driver;

	public DashboardPage(WebDriver driver) {
		this.driver = driver;
	}

	public boolean isDisplayed() {
		if (Links.URL_DASHBOARD.equals(driver.getCurrentUrl())) {
			return true;
		} else {
			return false;
		}
	}
}

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

@Test
public void loginByAdmin() {
	loginPg = new LoginPage(driver);
	dashboradPg = new DashboardPage(driver);
	loginPg.login("giang", "123456789");
	Assert.assertTrue(dashboradPg.isDisplayed());
}

Còn 1 Test Case ở class AddNewPostTest chưa được sửa. Các bạn hãy thử sửa, và comment cách làm của bạn ở phía dưới nhé. Mình sẽ nói cách của mình ở bài tiếp theo.

5 1 vote
Article Rating
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] ← Previous Next → […]