2011-10-20 3 views
0

다음과 같은 코드가 있습니다.JMockit에서 메서드 호출을 수락하는 방법?

public void f() { 
    logger.info("some string"); 
} 

JMockit에서 로거 호출이 허용되는 것을 어떻게 지정합니까? 예를 들어, 누군가가 로거 호출을 다음으로 변경 한 경우 :

 logger.finest("some string"); 

테스트는 여전히 성공해야합니다.

답변

0

당신은 스텁 아웃 모의 클래스를 만들 수 http://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.html에 따라 :

@MockClass(realClass = Logger.class, stubs = "", inverse = true) 
static class MockLoggerStub { } 

그럼 그냥 테스트 실행하기 전에이 전화 :

Mockit.setUpMocks(MockLoggerStub.class); 

이 완전히에 대한 Logger 클래스를 스텁됩니다 너의 시험.

+0

올바른 트랙에있는 것처럼 보입니다. 이 스텁 개체를 얻을 수있는 방법이 있습니까? 내 생성자는 로거 인스턴스를 매개 변수로 사용합니다 (종속성 삽입의 경우). –

+0

나는 100 % 확실하지는 않지만 나중에이 스타일을 사용하여 스텁 객체를 얻을 수 있다고 생각하지 않습니다. 이를 위해서는 "행동 기반 테스트"경로를 따라야한다고 생각합니다. http://jmockit.googlecode.com/svn/trunk/www/tutorial/BehaviorBasedTesting.html#partial을 참조하십시오. –