2013-03-17 2 views
0

PowerMock과 Mockito를 사용하여 "모의 객체"를 사용하는 몇 가지 테스트를 지금하고 있습니다. 문제는 모든 테스트가 똑같은 가짜를 반복해서 만들어 낸다는 것입니다. 내 테스트를 통해 파생 된 추상 클래스를 이러한 객체를 미리 조롱 할 수 있습니까?테스트 클래스 추상화

예 : 실제로

public abstract class AbstractTest { 
    public void initialize() { 
     PowerMockito.mockStatic(StaticMock.class); 
     when(StaticMock.doSomething()).thenReturn(true); 
    } 
} 

@RunWith(PowerMockRunner.class) 
@PrepareForTest(StaticMock.class) // BanManager.class contains static methods 
public class Test extends AbstractTest { 

    @SuppressWarnings("serial") 
    @Test 
    public void testWithPerms() { 
     initialize(); 
     SomeObject obj = new SomeObject(); 
     obj.doSomething(); 
     PowerMockito.verifyStatic(); 
     Static.verifyIsCalled(); 
    } 
} 

근무 어떻게 그 위에 뭔가를 할 수 있을까? 이것은 저에게 일관성없는 stackmap 프레임을줍니다.

EDIT : 답장을 보내 주셔서 감사합니다. 내 문제는 실제로 자바 7과 호환되지 않는 PowerMock 버전을 사용하고 있기 때문입니다. 그래도 귀하의 지적이 도움이 될 것입니다.

답변

4

물론 가능합니다. @Before 어노테이션을 기본 클래스의 메소드에두면 모든 서브 클래스의 모든 테스트가 시작될 때 실행됩니다. 또는 모든 테스트에 사용되는 일종의 팩토리 클래스에서이 값을 설정할 수 있습니다.

+0

@PrepareForTest를 추상 클래스에 넣으시겠습니까? – roblabla