[C++] PowerMockで内部オブジェクトをmock化する

テストしたいクラス


public class SomeClass 
{
    private InternalClass internalClass;
    void SomeMethod() 
    {
        internalClass.InternalMethod(); 
    }
}

SomeClassの内部で作られるクラス


public class InternalClass 
{
    // SomeClass#SomeMethod()の中で呼ばれるMock化したいメソッド
    public void InternalMethod() 
    {
        // do something
    }
}

テストコード

@RunWith(PowerMockRunner.class)
@PrepareForTest(SomeClass.class)
public class SomeClassUTest 
{
    @Mock
    InternalClass internalClass;

    @Before 
    void setUp() 
    {
        doNothing().when(internalClass).internalMethod(any());
        PowerMockito
           .whenNew(InternalClass.class)
           .withAnyArguments()
           .thenReturn(internalClass);
    }

    @Test
    public void testSomeClass()
    {
        someClass = new SomeClass();
        someClass.SomeMethod();
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です