2009-11-18 37 views
5

Khi tôi chạy thử nghiệm Junit4 của mình bây giờ tôi sử dụng chú thích @RunWith(SpringJUnit4ClassRunner.class) cho phép tôi chèn Hạt Đậu vào lớp thử nghiệm của mình.Sử dụng Spring JUnit4 và JMock cùng nhau

Tôi muốn sử dụng khung công tác JMock 2 (mà tôi không có kinh nghiệm thực tế) nhưng các ví dụ tôi thấy yêu cầu @RunWith(JMock.class) sau đây.

Vì vậy, câu hỏi của tôi là tôi có thể sử dụng JMock và Spring cùng với các bài kiểm tra JUnit4 của tôi và nếu như vậy như thế nào? Ví dụ là có một Á hậu thử nghiệm mùa xuân cũng hỗ trợ JMock?

Cảm ơn,

Richard

Trả lời

6

Bạn rõ ràng có thể gọi context.assertIsSatisfied() ở phần cuối của bài kiểm tra của bạn, trong một phương pháp @After ví dụ.

Trên trang web jmock.org, chọn tab "Khác" trên bất kỳ ví dụ mã nào và tài liệu sẽ cho bạn biết cách sử dụng jMock mà không có tích hợp khung JUnit.

Phiên bản tiếp theo của jMock sẽ hỗ trợ cơ chế "quy tắc" mới trong JUnit 4.7 và do đó bạn sẽ không cần phải sử dụng trình chạy thử nghiệm tùy chỉnh.

+0

Điều đó có ý nghĩa - cảm ơn bạn đã trả lời. –

+1

Phiên bản mới nhất của JMock có một tùy chọn @Rule, JUnitRuleMockery, giúp tránh sự cần thiết của một Á hậu –

1

Nếu sự cố có liên quan đến @RunWith, bạn có thể sử dụng số JMockit Expectations API thay thế. Nó tương tự như jMock trong kỳ vọng đó cũng được ghi lại bên trong một khối new Expectations() {...}, nhưng không yêu cầu sử dụng @RunWith (cũng không phải là lớp thử nghiệm cơ sở). Ngoài ra, không có cuộc gọi phương thức context.checking(...) nào bao gồm khối mong đợi.

1

Tôi nghĩ bạn cũng có thể đang bỏ lỡ một điểm ở đây. Đối với đơn vị thử nghiệm, tôi muốn kiểm soát chính xác đối tượng được thử nghiệm được xây dựng như thế nào, điều đó có nghĩa là truyền trong các trường hợp đã biết là cộng tác viên. Nói cách khác, nếu tôi cần một đối tượng thì tôi tạo ra nó trong bài kiểm tra và chuyển nó vào. Gọi Spring dường như quá mức cần thiết. Mặt khác, tôi sẽ cần đậu mùa xuân nếu tôi đã làm một số loại thử nghiệm tích hợp, để xem toàn bộ điều được kết nối với nhau hoặc thử nghiệm với thành phần của bên thứ ba như thế nào.

Các vấn đề liên quan