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

テストしたいクラス

[cpp]

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

[/cpp]

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

[cpp]

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

[/cpp]

テストコード

[cpp]
@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();
}
}
[/cpp]

kaizawa

闘う兼業主夫プログラマー。外資系IT企業所属。C++、Java、Solaris、Oracle、セキュリティ、DLP(Data Loss Prevention)、D&D、空手二段(極真会館)、柔道初段、柔術白帯ストライプ3(トライフォース)。English/中文

コメントを残す

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