Bio*_*eek 8 java testing junit4 mockito powermock
为了测试我编码的私有方法之一,我需要模拟一个Singleton.
在使用PowerMockito测试了几种方法之后:
PowerMockito.mockStatic(UtilDatabaseSoldeAutoCdeCommon.class);
Mockito.when(UtilDatabaseSoldeAutoCdeCommon.getInstance()).thenReturn(mockDatabase);
Run Code Online (Sandbox Code Playgroud)
我永远不会嘲笑这门课.因此,我不能像在每个方法中那样测试我的方法,我访问数据库.
UtilDatabaseSoldeAutoCdeCommon定义如下:
public class UtilDatabaseSoldeAutoCdeCommon extends AbstractUtilDatabase {
private static UtilDatabaseSoldeAutoCdeCommon instance;
private UtilDatabaseSoldeAutoCdeCommon() {
super();
}
public static UtilDatabaseSoldeAutoCdeCommon getInstance() {
if(instance == null) {
instance = new UtilDatabaseSoldeAutoCdeCommon();
}
return instance;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我在调用getInstance()时调试了powermockito,但每次调用consructor时,它都会在尝试加载配置文件(不存在)时崩溃.
我确切地说,配置文件被定义为UtilDatabaseEnrichissement的absract父类中的常量,并在构造函数中使用.
我怎么测试这部分?
asc*_*sch 14
我认为这应该有效:
@PrepareForTest({UtilDatabaseSoldeAutoCdeCommon.class})
public class SomeTest {
@Mock
UtilDatabaseSoldeAutoCdeCommon fakeSingletonInstance;
@Test
public void test() {
Whitebox.setInternalState(UtilDatabaseSoldeAutoCdeCommon.class, "instance", fakeSingletonInstance);
// Write here your test
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10401 次 |
| 最近记录: |