2009-03-28 21 views
6

Tôi đã mã hóa thử nghiệm trong Junit4 với mùa xuân, và tôi đã nhận hành vi này buồn cười:Junit4 + mùa xuân 2.5: Khẳng định ném "NoClassDefFoundError"

Nếu thử nghiệm của tôi đang đi qua như thế này, mọi thứ đều tốt:

@Test 
public void truthTest(){ 

    assertTrue(true); //Ok 

} 

Nhưng, nếu thử nghiệm của tôi thất bại:

@Test 
public void truthTest(){ 

    assertTrue(false); //ERROR 

} 

Sau đó, thay vì một thử nghiệm thất bại tôi nhận được một vết đống xấu xí và khó hiểu, Đây là nó:

http://pastie.org/429912

Xin lỗi để tống ra xấu xí này, nhưng dữ liệu duy nhất mà tôi đã có để giải thích vấn đề (I "pastied" nó cho dễ đọc)

Tôi thực sự bối rối, có ai nó gặp phải loại này vấn đề trước đây? Cảm ơn trước!

+0

Dưới đây là cách giải quyết của tôi trong một chủ đề liên quan http://stackoverflow.com/a/26029170/206622 –

Trả lời

11

http://jira.springframework.org/browse/SPR-5145

Nó là một vấn đề được biết đến với mùa xuân-test 2.5.x. Nó không tương thích với JUnit 4.5. Sử dụng 4.0-4.4.

Hoặc bạn có thể thử bản vá trong trình theo dõi vấn đề.

+1

Trên bit của một lưu ý phụ: (như bây giờ), giải pháp là "Nếu bạn đang sử dụng 4.0-4.4, hãy thử 4.5. Nếu bạn đang sử dụng 4.5, hãy thử 4.0-4.4". Tôi chỉ có cùng một vấn đề và tôi đã giải quyết nó bằng cách nâng cấp lên 4.5. – cwallenpoole

0

Điều gì sẽ xảy ra nếu bạn nhập AssumptionViolatedException vào lớp thử nghiệm của mình?

Có vẻ như không thể tìm thấy lớp học để ném ngoại lệ thích hợp.

+0

tôi đã nhập org.junit.internals.AssumptionViolatedException nhưng nó không làm việc hoặc –

1

Tôi đã gặp vấn đề tương tự khi tôi viết bài kiểm tra Spring JUnit của mình. Giống như rất nhiều bài đăng có sẵn trực tuyến, chỉ có hai lựa chọn thay thế trực tuyến

1) Luôn cập nhật phiên bản Spring và sử dụng phiên bản mới nhất của JUnit hoặc 2) Rời khỏi phiên bản Spring hiện tại của bạn và sử dụng phiên bản JUnit 4.4 hoặc ít hơn.

Tôi đã chọn tùy chọn # 2 nơi chúng tôi rời phiên bản Spring của mình ở 2.5 và tải xuống JUnit 4.4. Tất cả mọi thứ đã làm việc tốt sau đó. Một điểm khác cần lưu ý là nếu dự án của bạn, dự án A bạn đang viết thử nghiệm của bạn có phụ thuộc vào một dự án B khác có phiên bản Spring khác, bạn cũng sẽ nhận được một lỗi tương tự. Tôi đã học được nó một cách khó khăn.

-Prashanth