PowerMockitoとjUnitを使用して単体テストケースを作成しています。
public class Foo {
private String resolveApplicationId() {
return "testApplication";
}
}
これが私のテストケースです
@RunWith(PowerMockRunner.class)
@PrepareForTest(Foo.class)
public class test{
@Before
public void prepareTest() {
foo = PowerMockito.spy(new Foo());
}
@Test
public void checkApplicationIdIsResolved() throws Exception {
PowerMockito.doNothing().when(foo, "myPrivateMethod");
PowerMockito.verifyPrivate(foo).invoke("myPrivateMethod");
//Assert Here the returned value
}
}
教えてください
1. how can I assert the value returned by the method when it is called
2. how can I call the private method
3. if not then what actually I verify when I write test case for private methods.
ありがとう。
プライベートメソッドのテストは、パブリックメソッドのテストと同じです。外部依存関係がない場合は、モックを作成して使用する必要もありません。唯一の問題は、テストからのプライベートメソッドの呼び出しにあります。これはここで説明されていますが、Springutilsを使用することもできます。
したがって、テストしているメソッドをモックする必要はありません。この特定のテストでテストされていない他のオブジェクトをモックする必要があるだけです。だからあなたはテストするようになります
@Test
public void checkApplicationIdIsResolved() throws Exception {
// makeResolveIdAccessible();
// if needed setup mocks for objects used in resolveApplicationId
assertEquals(expectedApplicationId, foo.resolveApplicationId())
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加