如何使用 Null 值获得更好的分支覆盖率
How to get a better branch coverage with Null value
我正在为使用 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);
}
提前致谢
path = path.replaceAll( Constants.CONTEXT_PATH_ROS_PRODUCER_PROCESSOR, "" )
当路径为空时将抛出 NullPointerException。
为避免这种情况,您应该重构方法并在对空对象调用方法之前检查是否为空。
我正在为使用 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);
}
提前致谢
path = path.replaceAll( Constants.CONTEXT_PATH_ROS_PRODUCER_PROCESSOR, "" )
当路径为空时将抛出 NullPointerException。
为避免这种情况,您应该重构方法并在对空对象调用方法之前检查是否为空。