我正在使用JUnit
API测试方法,我想我正在设置所有值,但我仍然得到NullPointerException
。我不想抓住这个,但我甚至没想到它,因为我正在设定我的价值观。 l = appConfigDao.getAppConfig();
是引发exception
并且我使用Mockito
返回List
的行。对于getCacheProvider()
,我使用setter
设置值,但在调试时显示为null
,但我没有异常。
待测方法:
public List<AppConfigTO> getAppConfig(boolean ignoreCache ) {
List<AppConfigTO> l = null;
if( !ignoreCache ) {
if( getCacheProvider() != null ) {
l = (List<AppConfigTO>)getCacheProvider().getFromCache( CacheConstants.CONFIG_APPCONFIG, CacheConstants.TABLE_CACHE_KEY );
}
}
if( l == null ) {
l = appConfigDao.getAppConfig();
if( !ignoreCache ) {
if( getCacheProvider() != null ) {
getCacheProvider().addToCache( CacheConstants.CONFIG_APPCONFIG, CacheConstants.TABLE_CACHE_KEY, l );
}
}
}
return l;
}
JUnit测试:
private ICacheProvider cacheProvider;
@Test
public void testGetAppConfig() throws Exception {
AppConfigManager configManager = new AppConfigManager();
configManager.setCacheProvider(cacheProvider);
List<AppConfigTO> list = new ArrayList<>();
// Mocking IAppConfigDao
IAppConfigDao configDao = Mockito.mock(IAppConfigDao.class);
Mockito.when(configDao.getAppConfig()).thenReturn(list);
list = configManager.getAppConfig(false);
}
这只是一条快乐的道路,因为我想看看我是否正确设置了所有值,然后我将覆盖分支覆盖范围,但是如果我停止异常。
谢谢,