私はPowerMockitoを使用して静的メソッドをモックし、より良いラインカバレッジを取得しています。テストは合格しますが、Coberturaは依然としてリターンラインを赤で示しています。 PowerMockitoを間違った方法で使用しているかどうかはわかりません。すべての手がかりは?静的メソッドを模擬するためにPowerMockitoを使用したモック静的メソッド
MUT
public static Object getBean(String beanName) {
return AppContext.getApplicationContext().getBean(beanName);
}
JUnitテスト
@RunWith (PowerMockRunner.class)
@PrepareForTest ({AppContext.class})
private ApplicationContext applicationContext;
@Test
public void testGetBean() throws Exception {
String beanName = "junitBean";
applicationContext = Mockito.mock(ApplicationContext.class);
PowerMockito.mockStatic(AppContext.class);
AppContext.setApplicationContext(applicationContext);
PowerMockito.when(AppContext.getApplicationContext()).thenReturn(applicationContext);
PowerMockito.when(AppContext.getApplicationContext().getBean(beanName)).thenReturn(Object.class);
AppContext.getBean(beanName);
}
テストクラスに注釈を付けて、powermockランナーを使用しましたか? – azurefrog
私はちょうど私の質問を更新しました。はい、私は注釈を持っています。 – Jaykumar