Testing Asynchronous Code
https://jestjs.io/docs/asynchronous
Callbacks#
The most common asynchronous pattern is callbacks.
Ví dụ: giả sử bạn có một hàm fetchData (gọi lại) tìm nạp một số dữ liệu và gọi hàm gọi lại (dữ liệu) khi nó hoàn tất. Bạn muốn kiểm tra xem dữ liệu trả về này có phải là chuỗi 'bơ đậu phộng' không.
Vấn đề là quá trình kiểm tra sẽ hoàn thành ngay sau khi fetchData hoàn thành, trước khi thực hiện lệnh gọi lại.
Có một hình thức kiểm tra thay thế để khắc phục điều này. Thay vì đặt kiểm tra trong một hàm với một đối số trống, hãy sử dụng một đối số duy nhất được gọi là done. Jest sẽ đợi cho đến khi gọi lại xong trước khi kết thúc quá trình kiểm tra.
Promises
If your code uses promises, use the .then
method.
If you expect a promise to be rejected, use the .catch
method.
.resolves
/ .rejects
.resolves
/ .rejects
Bạn cũng có thể sử dụng trình so khớp .resolves trong câu lệnh mong đợi của mình và Jest sẽ đợi lời hứa đó được giải quyết. Nếu lời hứa bị từ chối, bài kiểm tra sẽ tự động thất bại.
Bạn cũng có thể sử dụng trình so khớp .resolves trong câu lệnh mong đợi của mình và Jest sẽ đợi lời hứa đó được giải quyết. Nếu lời hứa bị từ chối, bài kiểm tra sẽ tự động thất bại.
Async/Await
Ngoài ra, bạn có thể sử dụng async và chờ đợi trong các thử nghiệm của mình. Để viết kiểm tra không đồng bộ, hãy sử dụng từ khóa không đồng bộ ở phía trước hàm được truyền để kiểm tra. Ví dụ: có thể kiểm tra cùng một kịch bản fetchData với:
You can combine async
and await
with .resolves
or .rejects
.
Last updated