Bài viết trước:
Trong bài viết này sẽ mô tả cách tổ chức code test, khai báo fixtures, tests và hooks.
Fixtures
Các Test trong TestCafe bắt buộc phải được tổ chức thành các catogories gọi là fixtures. Để khai báo fixture chúng ta làm như sau:
fixture `Authentication tests`;
Phương thức fixture.page định nghĩa URL mở đầu của tests trong fixture.
fixture `MyFixture`
.page `http://devexpress.github.io/testcafe/example`;
test('Test1', async t => {
// Starts at http://devexpress.github.io/testcafe/example
});
Tests
Tests thuộc về fixtures, code cho các tests sẽ tạo thành những phần hoàn chỉnh của 1 fixture được khai báo.
Khai báo 1 Test
Để khai báo 1 test, chúng ta sử dụng từ khóa test. Hàm test truyền vào 2 tham số: tên của test (string) và 1 hàm bất đồng bộ với nội dung code test
fixture `MyFixture`;
test('Test1', async t => {
/* Test 1 Code */
});
test('Test2', async t => {
/* Test 2 Code */
});
Hàm bất đồng bộ nhận tham số đầu vào t: test controller, được cung cấp các API từ TestCafe
Viết nội dung test
Sử dụng các action (hành động) được cung cấp bởi TestCafe để có thể tương tác với trang. Sử dụng element selectors và client functions để lấy được các thông tin ở phía client. Trường hợp muốn check kết quả test có thành công hay không thì sử dụng assertions để kiểm tra.
Cấu trúc bên trong của các tests trong TestCafe phụ thuộc vào 1 user cụ thể. TestCafe tests có thể bao gồm bất cứ loại code nào, miễn sao nó hợp lệ. Tests có thể tham chiếu đến thư viện của bên thứ 3 và giao tiếp với các API khác.
Chỉ định thay thế URL mở đầu
Sử dụng hàm test.page để ghi đè URL mở đầu trong fixture
fixture `MyFixture`
.page `http://devexpress.github.io/testcafe/example`;
test
.page `http://devexpress.github.io/testcafe/blog/`
('My test', async t => {
// Starts at http://devexpress.github.io/testcafe/blog/
});
Hooks
Hooks là chuỗi các hành động có thể tái sử dụng để chạy trước hoặc sau tests hoặc fixtures. Chúng thường được thiết lập cho môi trường test (ví dụ như xác thực user) hoặc lưu trữ lại môi trường test sau khi kết thúc 1 test (xóa 1 đối tượng database).
Link bài viết gốc:
https://testcafe.io/documentation/402831/guides/basic-guides/test-structure