Gần đây, một khái niệm mới về Theories đã được thêm vào JUnit (kể từ v4.4).Tại sao JUnit chạy các trường hợp kiểm tra cho Lý thuyết chỉ cho đến khi thất bại đầu tiên?
Tóm lại, bạn có thể đánh dấu phương pháp thử nghiệm của bạn với @Theory
chú thích (thay vì @Test
), làm cho phương pháp thử nghiệm của bạn parametrized và khai báo một mảng các tham số, được đánh dấu bằng @DataPoints
chú thích ở đâu đó trong cùng một lớp.
JUnit sẽ chạy tuần tự phương pháp kiểm tra tham số của bạn khi truyền các tham số được truy xuất từ @DataPoints
cái khác. Nhưng chỉ cho đến khi lời kêu gọi đầu tiên thất bại (do bất kỳ lý do gì).
Khái niệm này có vẻ rất giống với @DataProviders
từ TestNG, nhưng khi chúng tôi sử dụng nhà cung cấp dữ liệu, tất cả các trường hợp đều chạy thử nghiệm kết quả thực hiện của chúng. Và nó hữu ích bởi vì bạn có thể xem có bao nhiêu công việc quan sát/không hoạt động và bạn có thể sửa chương trình của mình hiệu quả hơn.
Vì vậy, tôi tự hỏi lý do nào không thực hiện phương pháp được đánh dấu là @Theory
cho mỗi @DataPoint
? (Nó xuất hiện không quá khó khăn để thừa kế từ Á hậu lý thuyết và làm cho một Á hậu tùy chỉnh mà sẽ bỏ qua thất bại nhưng tại sao chúng ta không có hành vi như vậy ra khỏi hộp?)
UPD: Tôi đã tạo ra một lỗi khoan dung phiên bản của Lý thuyết Á hậu và cung cấp cho truy cập công khai: https://github.com/rgorodischer/fault-tolerant-theories
Để so sánh nó với tiêu chuẩn Lý thuyết chạy runner StandardTheoriesBehaviorDemo được đặt dưới thư mục src/test/...
.
xem phần cập nhật (Tôi nghĩ bạn có thể thấy nó thú vị). – Roman