2011-08-26 27 views
8

Tôi đã sau đoạn mã đó vào kiểm tra đơn vị của tôi,EasyMock: chế giễu đối tượng đang kêu gọi phương pháp thực tế

ClassToBeMocked mock = createMock(ClassToBeMocked.class); //I've statically imported EasyMock.* 
mock.callMethod(); //This is a void method 
expectLastCall(); 
replay(mock); 

Nhưng khi tôi chạy thử nghiệm, thay vì seeting lên expectaion, callMethod() là thực sự gọi. Tôi có làm điều gì sai?

Tôi khá mới đối với EasyMock hoặc bất kỳ khung mocking nào và bị chặn vì sự cố này. Mọi sự trợ giúp sẽ rất được trân trọng.

Cảm ơn, Andys

+0

Lớp ClassToBeMock có phải là lớp bê tông hay giao diện không? Ngoài ra, bạn đang sử dụng phiên bản EasyMock nào? –

Trả lời

8

Điều này sẽ xảy ra nếu bạn đang chế giễu một lớp học với một phương pháp 'chính thức'. EasyMock không ghi đè lên phương thức cuối cùng. Nếu bạn không thể giả lập một giao diện, và bạn không thể thay đổi phương thức thành non-final, bạn có thể sử dụng PowerMock cùng với EasyMock để tránh giới hạn này. Trường hợp sử dụng cụ thể đó được mô tả here.

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