Một phần lớn của khối lượng thử nghiệm này là dành cho việc triển khai bộ sưu tập ổi. Họ đã viết các bài kiểm tra chung để kiểm tra toàn diện các giao diện bộ sưu tập và điều này tạo ra một bộ cho mỗi lần thực hiện. Xem, ví dụ, các lớp học được gọi là CollectionAddAllTester
, ListIndexOfTester
.
Tất cả được hỗ trợ bởi một thư viện có tên testlib, được vận chuyển như một phần của Guava. Điều này khá chung chung. Nó hỗ trợ viết các bài kiểm tra chung cho bất kỳ giao diện nào (không chỉ các bộ sưu tập). Bạn có thể chỉ định Feature
các triển khai có thể và kiểm tra các triển khai đó (ví dụ: nếu bộ của bạn không thể thay đổi được, bạn mong đợi một kết quả khác set.add()
) và khi bạn chạy thử nghiệm, bạn chỉ định các tính năng triển khai của bạn hỗ trợ.
Nó dựa trên JUnit 3, không phải 4. Thông thường, bạn có một lớp mở rộng TestCase
đầy đủ các phương thức được đặt tên testSomething()
và JUnit chạy chúng một cách phản xạ. Thư viện testlib nối vào việc chạy các thử nghiệm này để vòng đời trông như thế này:
- Đối với mỗi triển khai bạn muốn kiểm tra
- Đối với mỗi phương pháp thử nghiệm (áp dụng)
- Tạo
TestCase
ví dụ
- Khởi tạo
TestSubjectGenerator
- đây là giao diện testlib mà bạn mở rộng nơi bạn thực sự tạo đối tượng thử nghiệm
- Phản xạ chạy phương pháp thử. Trong phương pháp này,
getSubjectGenerator()
cung cấp quyền truy cập vào đối tượng thử nghiệm
Bit chính là bước khởi tạo thêm cho phép họ đưa một đối tượng thử nghiệm cụ thể vào trường hợp thử nghiệm chung.
Tôi đã viết một bài về cách viết bộ tạo testlib cho giao diện của riêng bạn.
(Cũng được đăng lên cùng một câu hỏi trên trang web sqa .)