Quay lại thư viện câu hỏi
unit testing Junior

Trong Unit Testing, sự khác biệt giữa 'State-based Testing' và 'Interaction-based Testing' là gì? Khi nào nên ưu tiên loại nào?

Phân biệt

  1. State-based Testing: Kiểm tra trạng thái cuối cùng của đối tượng sau khi hàm được thực thi (ví dụ: kiểm tra giá trị của một biến, một thuộc tính).
  2. Interaction-based Testing: Kiểm tra xem hàm có gọi đúng các phương thức phụ thuộc (dependencies) với đúng tham số hay không (thường dùng Mock/Spy).

Khi nào sử dụng?

  • State-based: Ưu tiên cho các hàm tính toán logic thuần túy (Pure Functions).
  • Interaction-based: Ưu tiên cho các hàm điều phối (Orchestrator) hoặc các hàm có tương tác với hệ thống bên ngoài (gửi email, gọi API).

Lưu ý

Lạm dụng Interaction-based Testing sẽ làm cho test bị gắn chặt với chi tiết cài đặt (implementation details), gây khó khăn khi refactor code sau này.

Luyện tập câu hỏi này trong chế độ đếm ngược mô phỏng phỏng vấn thật:
Phòng Luyện Tập
Khóa học Chuyên sâu Chủ đề unit testing

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)

Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.

High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học