Thứ Tư, 14 tháng 4, 2021

Testing trong AdonisJS





## Test Categories
- Unit Tests: test một phần nhỏ của code.
    Ví dụ test code validation user detail có chạy đúng không.

- Functional Tests: Test một chức năng lớn, như là end-user đang gửi request vậy.


## Setup
https://adonisjs.com/docs/4.1/testing
> adonis install @adonisjs/vow

- Cần thiết lập `VowProvider`.
- thiết lập vowfile.js
- .env.testing

Ví dụ một file test đơn giản
File test/unit/example.spec.js
<!-->
'use strict'

const { test } = use('Test/Suite')('Example')

test('make sure 2 + 2 is 4', async ({ assert }) => {
assert.equal(2 + 2, 4)
})
<-->


## Chạy test
> adonis test


## Suite
Mỗi file test là 1 Suite, được định nghĩa ở trong một group tests.


## Traits
Để tránh các test runner chạy với các chức năng không cần thiết. AdonisJs phân tách các chức năng này nhỏ ra như các traits.
Ví dụ muốn chạy browser thì cần thêm vào
<!-->
const { test, trait } = use('Test/Suite')('User registeration')

trait('Test/Browser') // sẽ load các thư viện cần thiết liên quan.

test('return error when credentials are wrong', async ({ browser }) => {
const page = await browser.visit('/user')
})
<-->


## Lifecycle Hooks
Thêm vào các xử lý init data trước khi chạy hoặc revert lại data sau khi chạy...


## Assertions
`assert object` là một ánh xạ của chaijs/assert. Dùng so sánh kết quả mong đợi và kết quả thực.


## HTTP Tests
Dùng để test API.
Ví dụ: xác thực API, dữ liệu trả về mong muốn của 1 API...
> Tạo 1 file test mới: `adonis make:test Post`
> chạy test: `adonis test functional`


## Browser Tests
AdonisJs makes it simple to write functional tests using the `Chrome browser`.
Under the hood, it uses `Puppeteer` to launch a web browser and run assertions.

- Setup:
<!-->
adonis install @adonisjs/vow-browser

# Skip Chromium download
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true adonis install @adonisjs/vow-browser
<-->

- Đăng kí
start/app.js
<!-->
const aceProviders = [
'@adonisjs/vow-browser/providers/VowBrowserProvider'
]
<-->

> adonis test functional


## Tạo giả lập
1. Mail Fake
2. Events Fake


Không có nhận xét nào:

Đăng nhận xét

Học lập trình web căn bản với PHP

Bài 1: Các kiến thức căn bản Part 1:  https://jimmyvan88.blogspot.com/2012/05/can-ban-lap-trinh-web-voi-php-bai-1-cac.html Part 2:  https://...