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 selectorsclient 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