首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用零值获得更好的分支覆盖

如何利用零值获得更好的分支覆盖
EN

Stack Overflow用户
提问于 2016-05-31 15:24:13
回答 1查看 1.5K关注 0票数 0

我正在为使用JUnit的方法编写一个测试用例,并且为了更好地覆盖分支,我试图覆盖一个null条件。问题是,如果我传递null作为一个参数,测试用例抛出NullPointerException,这是显而易见的,但是我将如何覆盖Null条件的分支覆盖。path是一个String参数,我想用if( path != null && path.length() > 0 )来介绍它。我还没有编写完整的测试用例,但我很困惑如何为null条件编写一个测试用例。

被测方法

代码语言:javascript
运行
复制
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测试

代码语言:javascript
运行
复制
@Test
public void testTranslateWebContextPathToVersionNo() throws Exception {
    TestQuartzROSServiceContextUtil util = new TestQuartzROSServiceContextUtil();
    util.translateWebContextPathToVersionNo(null);
}

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 15:37:35

代码语言:javascript
运行
复制
 path = path.replaceAll( Constants.CONTEXT_PATH_ROS_PRODUCER_PROCESSOR, "" ) 

当path为null时,将引发NullPointerException。

为了避免这种情况,您应该重构该方法,并在对空对象调用方法之前检查是否为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37549728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档