Giải thích của tôi về cuộc nói chuyện đó là:
- kiểm tra thành phần, không phải lớp học.
- kiểm tra các thành phần thông qua các cổng giao diện của họ.
Nó không được nêu trong bài nói chuyện, nhưng tôi nghĩ bối cảnh giả định cho lời khuyên là một cái gì đó như:
- bạn đang phát triển một hệ thống cho người dùng, không phải là thư viện tiện ích hoặc khung.
- mục tiêu của thử nghiệm là cung cấp thành công càng nhiều càng tốt trong phạm vi ngân sách cạnh tranh.
- các thành phần được viết bằng một ngôn ngữ đơn, trưởng thành, có thể được nhập tĩnh, như C # / Java.
- một thành phần có thứ tự 10000-50000 dòng; một dự án Maven hoặc VS, plugin OSGI, v.v.
- các thành phần được viết bởi một nhà phát triển duy nhất hoặc nhóm tích hợp chặt chẽ.
- bạn đang theo thuật ngữ và cách tiếp cận của một cái gì đó như kiến trúc lục giác
- một cổng thành phần là nơi bạn rời khỏi ngôn ngữ địa phương và hệ thống loại của nó, phía sau, chuyển sang http / SQL / XML / byte / ...
- gói tất cả các cổng là các giao diện được gõ, theo nghĩa Java / C #, có thể có các triển khai được chuyển sang các công nghệ chuyển đổi.
Vì vậy, kiểm tra một thành phần là phạm vi lớn nhất có thể trong đó một cái gì đó vẫn có thể được gọi là kiểm thử đơn vị một cách hợp lý. Điều này khá khác với cách một số người, đặc biệt là các học giả, sử dụng thuật ngữ này. Nó không giống như các ví dụ trong hướng dẫn công cụ kiểm tra đơn vị điển hình. Tuy nhiên, nó phù hợp với nguồn gốc của nó trong thử nghiệm phần cứng; bảng và mô-đun được thử nghiệm đơn vị, không phải dây và ốc vít. Hoặc ít nhất bạn không chế tạo một chiếc Boeing giả để thử vít ...
Ngoại suy từ đó, và đưa vào một số suy nghĩ của riêng tôi,
- Mọi giao diện sẽ là đầu vào, đầu ra hoặc cộng tác viên (như cơ sở dữ liệu).
- bạn kiểm tra các giao diện đầu vào; gọi các phương thức, khẳng định các giá trị trả về.
- bạn chế nhạo các giao diện đầu ra; xác minh các phương thức dự kiến được gọi cho một trường hợp thử nghiệm nhất định.
- bạn giả mạo các cộng tác viên; cung cấp một triển khai đơn giản nhưng làm việc
Nếu bạn làm điều đó đúng cách và sạch sẽ, bạn hầu như không cần một công cụ chế giễu; nó chỉ được sử dụng một vài lần cho mỗi hệ thống.
Một cơ sở dữ liệu nói chung là một cộng tác viên, vì vậy nó bị làm giả thay vì bị chế giễu. Điều này sẽ gây đau đớn khi thực hiện bằng tay; may mắn là những việc như vậy đã tồn tại .
Mẫu thử nghiệm cơ bản là thực hiện một số chuỗi hoạt động (ví dụ: lưu và tải lại tài liệu); xác nhận nó hoạt động. Điều này giống như đối với bất kỳ kịch bản thử nghiệm nào khác; không có thay đổi triển khai (làm việc) có thể khiến thử nghiệm như vậy thất bại.
Ngoại lệ là nơi các bản ghi cơ sở dữ liệu được viết nhưng không bao giờ được đọc bởi hệ thống đang thử nghiệm; ví dụ: nhật ký kiểm toán hoặc tương tự. Đây là những đầu ra, và do đó nên bị chế giễu. Các mẫu thử nghiệm được thực hiện một số chuỗi các hoạt động; xác nhận giao diện kiểm toán đã được gọi với các phương thức và đối số như được chỉ định.
Lưu ý rằng ngay cả ở đây, với điều kiện bạn đang sử dụng một công cụ giả định an toàn kiểu như mockito , việc đổi tên một phương thức giao diện có thể gây ra lỗi thử nghiệm. Nếu bạn sử dụng IDE với các bài kiểm tra được tải, nó sẽ được cấu trúc lại cùng với đổi tên phương thức. Nếu bạn không làm, bài kiểm tra sẽ không được biên dịch.