2012-02-15 36 views
8

Tôi muốn hiểu EasyMock tốt hơn và làm việc với nó Tôi đã đưa ra câu hỏi này.Đặt kỳ vọng tiêu cực trong EasyMock

Điều tôi muốn làm là thiết lập kỳ vọng tiêu cực đối với một đối tượng, để kiểm tra xem một phương pháp nào đó không được gọi trong khi kiểm tra (khi xác minh những kỳ vọng ban đầu đó).

Tôi biết rằng hành vi xác minh mặc định là kiểm tra cả hai trường hợp: mong đợi của bạn đã được đáp ứng và không có cuộc gọi nào khác được thực hiện; nhưng không có hồ sơ trong thử nghiệm rằng một phương pháp nào đó không được gọi, nói cách khác, nếu bạn đặt kỳ vọng về phương pháp này và nó không được gọi, thử nghiệm của bạn sẽ thất bại (xác nhận rằng việc triển khai của bạn hoạt động đúng!) .

Có cách nào sử dụng EasyMock để thiết lập tính năng này không? Tôi không thể tìm thấy bất cứ điều gì trong tài liệu.

Cảm ơn sự quan tâm của bạn và trước sự giúp đỡ của bạn!

Trả lời

11

Cách EasyMock làm việc là như thế này:

  1. tạo ra một đối tượng Mock cho giao diện bạn muốn để mô phỏng,
  2. kỷ lục hành vi mong đợi, và
  3. chuyển đổi đối tượng Mock để phát lại trạng thái .

Giống như trong sau đây nếu bạn không đặt bất kỳ mong đợi:

mock = createMock(YourInterface.class); // 1 
// 2 (we do not expect anything) 
replay(mock); // 3 

sau đó nó có nghĩa là nếu ClassUnderTest cuộc gọi bất kỳ các phương thức của giao diện, các đối tượng Mock sẽ ném một AssertionError như thế này:

java.lang.AssertionError: 
    Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled(): 

Chính điều này là Kỳ vọng tiêu cực kiểm tra.

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