如何使用JUnit继承

时间:2016-05-12 15:43:56

标签: java junit mockito

我正在使用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);
}

这只是一条快乐的道路,因为我想看看我是否正确设置了所有值,然后我将覆盖分支覆盖范围,但是如果我停止异常。

谢谢,

0 个答案:

没有答案