2012-05-22 27 views
5

Hãy xem xét đoạn mã này: -Có phải "EasyMock.expectLastCall();" làm bất cứ điều gì mà không cần thêm một cuộc gọi đến kết quả IExpectationSetters?

Whatever mock = EasyMock.createMock(Whatever.class); 
mock.doSomething(); 
EasyMock.expectLastCall(); // <- Does this do anything? 
EasyMock.replay(whatever); 

Liệu expectLastCall() đây thực sự làm bất cứ điều gì? Việc thêm hoặc xóa dòng này khỏi thử nghiệm của tôi dường như không tạo ra sự khác biệt nào.

Rõ ràng là hữu ích nếu bạn thêm .andThrow hoặc .atLeastOnce(), v.v. vào cuộc gọi. Đó không phải là những gì tôi hỏi.

Trả lời

5

Không, bạn chỉ thường sử dụng expectLastCall() khi bạn cần kết quả để chỉ định hành vi. Đó là mục đích của nó.

Tất nhiên, không bị gây hại để gọi điện thoại nếu bạn thấy nó làm cho bài kiểm tra của bạn dễ đọc hơn. Ví dụ: tôi có thể làm điều đó cho tính nhất quán - nếu tôi đã để gọi nó hai lần để chỉ định hành vi khác, tôi có thể bao gồm hành vi này lần thứ ba ngay cả khi tôi không cần. Tôi có thể thêm hành vi mặc định một cách rõ ràng mặc dù, chỉ cần cho sự nhất quán bổ sung.

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