Using Matchers (ok)

https://jestjs.io/docs/using-matchers

Common Matchers

The simplest way to test a value is with exact equality.

test('two plus two is four', () => {
  expect(2 + 2).toBe(4);
});

Trong mã này, kỳ vọng (2 + 2) trả về một đối tượng "kỳ vọng". Bạn thường sẽ không làm được gì nhiều với các đối tượng kỳ vọng này ngoại trừ các trình khớp lệnh gọi trên chúng. Trong mã này, .toBe (4) là trình đối sánh. Khi Jest chạy, nó sẽ theo dõi tất cả các trình khớp lỗi để có thể in ra các thông báo lỗi đẹp cho bạn.

toBe sử dụng Object.is để kiểm tra sự bình đẳng chính xác. Nếu bạn muốn kiểm tra giá trị của một đối tượng, hãy sử dụng toEqual để thay thế:

test('object assignment', () => {
  const data = {one: 1};
  data['two'] = 2;
  expect(data).toEqual({one: 1, two: 2});
});

toEqual kiểm tra đệ quy mọi trường của một đối tượng hoặc mảng.

test('object assignment', () => {
  const data = {one: 1};
  data['two'] = 2;
  expect(data).toEqual({one: 1, two: 2});
});

You can also test for the opposite of a matcher:

Truthiness

Trong các bài kiểm tra, đôi khi bạn cần phân biệt giữa không xác định, null và sai, nhưng đôi khi bạn không muốn xử lý chúng theo cách khác nhau. Jest chứa những người trợ giúp cho phép bạn rõ ràng về những gì bạn muốn.

  • toBeNull matches only null

  • toBeUndefined matches only undefined

  • toBeDefined is the opposite of toBeUndefined

  • toBeTruthy matches anything that an if statement treats as true

  • toBeFalsy matches anything that an if statement treats as false

Numbers

For floating point equality, use toBeCloseTo instead of toEqual, because you don't want a test to depend on a tiny rounding error.

Strings

Arrays and iterables

Exceptions

Lưu ý: hàm ném một ngoại lệ cần phải được gọi trong một hàm gói, nếu không, khẳng định toThrow sẽ không thành công.

Last updated

Was this helpful?