2009-02-25 5 views
0

간단한 일을하려고 할 때 좌절감을 느낍니다. mock 객체에서 메소드를 호출하고 반환 값을 확인하지 않습니다. 난 그냥 올바른 매개 변수와 함께 호출되었는지 확인하고 싶습니다.EasyMock에서 메서드 호출을 확인하고 반환 값을 무시하려면 어떻게해야합니까?

예 :

MyInterface mockObject = createMock(MyInterface.class); 
SomeObject param = new SomeObject(); 

/* the write object is not void and returns an instance of FooOjbect. 
* I want to ignore everything to do with FooObject - I do not care what 
* it is because I do not store its value. How do I do this? */ 
mockObject.write(param); 

replay(mockObject); 

someOtherObjectThatCallsAboveMockObject.process(mockObject); 

verify(mockObject); 

그래서 어떤 EasyMock에 전문가가 거기에있다? 실제로 구현은 타사 네트워킹 라이브러리 (Apache Mina)에서 이루어지기 때문에 반환 값을 저장하지 않고 호출하는 기본 메서드의 디자인에 대해서는 신경 쓰지 않고 API에 대한 제어권이 없습니다.

편집 : 결론은 얼마 후

가 쉽지 않았다 및 Mockito에 들어갑니다 때문에 나는 EasyMock에 버려진 도달했다. 대신

mockObject.write(param) 

쓰기의

+1

모티 또로 바뀌 었습니다. 그것은 훨씬 쉽고 편안합니다. – guerda

답변

3

EasyMock.expect(mockObject.write(param)).andReturn(/* return value here */); 

당신은 여전히 ​​올바른 것으로 코드 값을 반환해야하지만 테스트에 더의 값을 무시할 수 있습니다.

+0

나중에 값을 무시하는 방법에 대한 예제를 제공 할 수 있습니까? 나는 문서를 샅샅이 뒤졌으며 어떤 좋은 예도 보지 못했다. – Elijah

+0

@ 엘리야 (Elijah) "값 무시"는 실제 클래스가 값에서 벗어나는 것을 의미합니다. 실제 클래스가이 반환 값에 대해 작동하지 않으면 무시한다는 것을 의미합니다. 반환 값, 기간을 입력해야합니다. –

+0

... 테스트에서 무시합니다. 다시는 참조하지 마십시오. 실제 코드에 문제가 있습니까? andReturn (null) 문제가 발생합니까? 코드를 원하는대로 실행하기 위해 반환 값을 충분히 만들려고합니다. – Stephen