我正在为使用JUnit
的方法编写一个测试用例,并且为了更好地覆盖分支,我试图覆盖一个null
条件。问题是,如果我传递null
作为一个参数,测试用例抛出NullPointerException
,这是显而易见的,但是我将如何覆盖Null
条件的分支覆盖。path
是一个String
参数,我想用if( path != null && path.length() > 0 )
来介绍它。我还没有编写完整的测试用例,但我很困惑如何为null
条件编写一个测试用例。
被测方法
public String translateWebContextPathToVersionNo( String path ) {
path = path.replaceAll( Constants.CONTEXT_PATH_ROS_PRODUCER_PROCESSOR, "" );
path = path.replaceAll( Constants.CONTEXT_PATH_ROS_CONSUMER_PROCESSOR, "" );
if( path != null && path.length() > 0 ) {
String endChar = path.substring( path.length() - 1 );
if( endChar.matches( pattern ) ) {
path = path.substring(0, path.length() -1 );
}
}
return path;
}
JUnit测试
@Test
public void testTranslateWebContextPathToVersionNo() throws Exception {
TestQuartzROSServiceContextUtil util = new TestQuartzROSServiceContextUtil();
util.translateWebContextPathToVersionNo(null);
}
提前感谢
发布于 2016-05-31 15:37:35
path = path.replaceAll( Constants.CONTEXT_PATH_ROS_PRODUCER_PROCESSOR, "" )
当path为null时,将引发NullPointerException。
为了避免这种情况,您应该重构该方法,并在对空对象调用方法之前检查是否为空。
https://stackoverflow.com/questions/37549728
复制相似问题