[C++] Whiteboxで内部オブジェクトをmockオブジェクトに置き換える

テストしたいクラス


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

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


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

テストコード


public class MyClassUTest 
{
    @Spy
    InternalClass mockInternalClass = new InternalClass();

    MyClass MyClass;

    @Before 
    void setUp() 
    {
        myClass = new MyClass();
        doNothing().when(internalClass).internalMethod(any());
        Whitebox.setInternalState(myClass, "internalClass", mockInternalClass);

    }

    @Test
    public void testMyClass()
    {
        myClass.SomeMethod();
    }
}

コメントを残す

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