Nhìn vào một báo cáo JUnit. JUnit đã được tổ chức theo gói. Mỗi gói có (hoặc có thể có) các lớp TestSuite, mỗi lớp lần lượt chạy nhiều TestCase. Mỗi TestCase có thể có nhiều phương thức thử nghiệm của biểu mẫu public void test*()
, mỗi phương thức sẽ thực sự trở thành một thể hiện của lớp TestCase mà chúng thuộc về. Mỗi phương thức kiểm tra (ví dụ TestCase) có tên và tiêu chí đạt / không đạt.
Những gì quản lý của tôi yêu cầu là khái niệm về các mục TestStep riêng lẻ , mỗi mục báo cáo các tiêu chí đạt / không đạt của riêng chúng. Thất bại của bất kỳ bước kiểm tra nào không được ngăn cản việc thực hiện các bước kiểm tra tiếp theo.
Trước đây, các nhà phát triển thử nghiệm ở vị trí của tôi đã tổ chức các lớp TestCase thành các gói tương ứng với (các) phần của sản phẩm được thử nghiệm, tạo một lớp TestCase cho mỗi thử nghiệm và biến mỗi phương thức thử nghiệm thành một "bước" riêng biệt trong thử nghiệm, hoàn thành với tiêu chí đạt / không đạt của chính nó trong đầu ra JUnit. Mỗi TestCase là một "thử nghiệm" độc lập, nhưng các phương thức riêng lẻ hoặc "các bước" thử nghiệm trong TestCase, phải xảy ra theo một thứ tự cụ thể.
Các phương thức TestCase là các bước của TestCase và các nhà thiết kế thử nghiệm có một tiêu chí vượt qua / thất bại riêng biệt cho mỗi bước kiểm tra. Bây giờ các bước kiểm tra bị xáo trộn, và các bài kiểm tra (tất nhiên) không thành công.
Ví dụ:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Mỗi phương pháp kiểm tra khẳng định và báo cáo các tiêu chí vượt qua / thất bại riêng. Thu gọn điều này thành "một phương pháp thử nghiệm lớn" vì mục đích đặt hàng sẽ làm mất tính chi tiết của tiêu chí đạt / không đạt của từng "bước" trong báo cáo tóm tắt của JUnit. ... và điều đó làm đảo lộn các nhà quản lý của tôi. Họ hiện đang yêu cầu một sự thay thế khác.
Bất cứ ai cũng có thể giải thích làm thế nào một JUnit với thứ tự phương pháp thử nghiệm được xáo trộn sẽ hỗ trợ các tiêu chí vượt qua / thất bại riêng biệt của từng bước kiểm tra tuần tự, như được minh họa ở trên và được quản lý của tôi yêu cầu?
Bất kể tài liệu nào, tôi thấy đây là một hồi quy nghiêm trọng trong khung JUnit đang gây khó khăn cho rất nhiều nhà phát triển thử nghiệm.