Chào các bạn đã đến với chủ đề tiếp theo của mình. Để tiếp tục với serries giới thiệu về TestNG Framework, hôm nay, chúng ta sẽ tìm hiểu kỹ hơn về Annotation @Test và các attribute của Annotation này. Ở bài này, mình sẽ đi qua những nội dung như sau:
Nội dung
1. Annotation @Test
Đây là annotation đánh dấu method hoặc Class là 1 phần của TestNG Test. Nếu nó được đánh dấu cho Class thì tất cả các Method mà được khai báo là public thì sẽ được run, các Method không phải public sẽ không được run.
Ví dụ:
2. Các attribute của annotation @Test
- enabled: giá trị mặc định là true. Dùng để đánh dấu method run hoặc không run. Nếu false, method đó sẽ được bỏ qua, không run. Nếu true, method đó sẽ được run.
Ví dụ: @Test(enabled=true)
- description: dùng để thêm thông tin cho test. Attribute này khá hiệu quả khi chúng ta muốn thêm mô tả các test case khi mà method Name không thể diễn tả được hết.
Ví dụ: @Test(description=”Print the second test method”)
- expectedExceptions: dùng để xác định exception mà Method có thể gặp phải. Nếu method throw expection, thì test case sẽ passed. Ngược lại, test case sẽ bị failed
Ví dụ: @Test(expectedExceptions={IOException.class})
- timeOut: xác định thời gian tối đa mà test có thể run, nếu thời gian run lớn hơn thời gian đã định sẵn thì kết quả test là fail. Đơn vị là mili giây.
Ví dụ: @Test(timeOut=500)
- dependsOnMethods: điền list các method mà test phụ thuộc.
Ví dụ: @Test(dependsOnMethods = “method1”)
- alwaysRun: có giá trị mặc định là false, nó sẽ bị ignore nếu nó không có dependency method (phụ thuộc). Nếu đặt là true thì Method sẽ được run kể cả khi các dependency method fail.
Ví dụ: @Test(alwaysRun=true)
- groups: điền tên group, những test mà có chung tên group sẽ tạo thành 1 tập hợp. Tập hợp này có thể được run từ file testng.xml. Ví dụ:
- dependsOnGroups: điền list các group mà test phụ thuộc. Ví dụ:
- dataProvider: điền data vào cho test method, phục vụ cho data-driven testing (mình sẽ giới thiệu ở bài sau)
- dataProviderClass: điền tên class mà TestNG sẽ tìm kiếm data-provider method được nhắc đến ở attribute dataProvider. Mặc định thì nó sẽ tìm ở chính class đó hoặc class base.
Lưu ý:
Trong 1 @Test có thể áp dụng nhiều annotation cùng với nhau. Ví dụ:
@Test(enabled=true, description="Print the second test method")
public void secondTest() {
System.out.println("Second test method");
}
3. Độ ưu tiên để chạy Test trong TestNG
Trong hình trên, chúng ta sẽ add thêm attribute priority để xác định thứ tự chạy test case. Số càng nhỏ thì độ ưu tiên càng lớn. Vì vậy khi chạy đoạn code trên, nó sẽ chạy theo trình tự như sau:
- secondTest
- firstTest
- thirdTest
4. Lời kết
Đến đây thì mình xin kết thúc bài hôm nay. Các bạn hãy làm lại theo ví dụ trên để hiểu bài hơn nhé. Mình hy vọng bài viết này sẽ hữu ích cho các bạn. Cảm ơn các bạn đã theo dõi bài viết của mình. Hẹn gặp lại các bạn ở những chủ đề tiếp theo.
Nguồn:
https://giangtester.com/bai-4-test-trong-testng-va-cac-attribute-cua-annotation-test/