Tôi có một số xét nghiệm như thế này:Làm thế nào thực hiện JUnit để in khẳng định và kết quả
@Test
public void test01()
{
Position p = getPositionAt('a', 1);
assertNotNull("a1 exists", p);
assertNotNull("figure exists a1", p.getFigure());
p = getPositionAt('a', 2);
assertNotNull("exists a2", p);
assertNull("figure exists a2", p.getFigure());
p = getPositionAt('b', 1);
assertNotNull("exists b1", p);
assertNull("figure exists b1", p.getFigure());
}
Những gì tôi cần trong khi chạy thử nghiệm là để in mỗi thông điệp khẳng định để stdout và sau đó kết quả của assert.
Đây là yêu cầu định dạng từ lớp thử nghiệm:
a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed
Nhưng làm thế nào để làm điều đó? Tôi khá mới làm việc với JUnit và không có ý tưởng. Có cách nào sử dụng runners
và suites
không? Hoặc tồn tại bất kỳ phương thức assertSuccess()
, assertFailed()
nào? Cảm ơn mọi gợi ý.
Bằng cách này, thông số 'message' chỉ áp dụng khi xác nhận không thành công, vì vậy thông báo' assertNotNull' của bạn thực sự phải là "a1 không tồn tại "etc ... – Jonathan
bất kỳ lý do cụ thể nào khiến bạn muốn điều này? –
Cả hai nhu cầu của bạn có thể được coi là một mô hình chống trong thế giới thử nghiệm đơn vị. Các xét nghiệm của bạn chỉ nên khẳng định một điều duy nhất, vì vậy không có lý do gì để mong muốn một khẳng định không thất bại.Các bài kiểm tra của bạn nên được tự động với tất cả việc kiểm tra được thực hiện bởi các xác nhận, vì vậy không cần phải có bản in để kiểm tra thủ công. Trong thực tế, có những lý do tốt cho việc đầu tiên, chẳng hạn như chạy các bài kiểm tra theo bảng và cần nhiều cuộc gọi khẳng định để kiểm tra một thực tế logic. Hãy cảnh giác với thứ hai, mặc dù. Tự động hóa là cách duy nhất để chuyển tiếp trong thử nghiệm đơn vị và hồi quy. – user7610