React / Next.js

Kiểm thử React

React Testing Library, Jest, Vitest, kiểm thử component, mocking, tương tác người dùng, coverage

20 câu hỏi phỏng vấn·
Mid-Level
1

Sự khác biệt chính giữa getBy, queryBy và findBy trong React Testing Library là gì?

Câu trả lời

getBy ném lỗi nếu phần tử không tồn tại (assertions đồng bộ), queryBy trả về null nếu phần tử không tồn tại (kiểm tra sự vắng mặt), và findBy trả về Promise cho các phần tử bất đồng bộ. Sử dụng getBy mặc định cho các phần tử phải tồn tại, queryBy để xác nhận phần tử không có mặt, và findBy để chờ phần tử xuất hiện sau một khoảng delay.

2

Ưu điểm chính của getByRole so với getByTestId là gì?

Câu trả lời

getByRole khuyến khích các thực hành tốt nhất về khả năng truy cập bằng cách nhắm mục tiêu các phần tử theo vai trò ARIA ngữ nghĩa (button, textbox, heading), giúp cải thiện khả năng truy cập của component cho trình đọc màn hình. getByTestId yêu cầu thêm các thuộc tính data-testid nhân tạo không mang lại giá trị cho người dùng cuối. React Testing Library khuyến nghị ưu tiên getByRole, getByLabelText và getByText trước getByTestId.

3

Làm thế nào để kiểm thử việc render có điều kiện của một phần tử KHÔNG có mặt trong DOM?

Câu trả lời

Sử dụng queryBy để xác nhận sự vắng mặt của phần tử, vì nó trả về null thay vì ném lỗi. Ví dụ: expect(screen.queryByText('Error')).toBeNull() hoặc expect(screen.queryByText('Error')).not.toBeInTheDocument(). getBy sẽ ném lỗi và làm test thất bại, trong khi findBy chờ phần tử xuất hiện (timeout nếu vắng mặt).

4

Tại sao React Testing Library khuyến nghị KHÔNG kiểm thử chi tiết triển khai?

5

Sự khác biệt giữa render và screen trong React Testing Library là gì?

+17 câu hỏi phỏng vấn

Nắm vững React / Next.js cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí