使用junit Assert 断言来判断参数是否为空

来源:互联网 发布:linux ettercap 编辑:程序博客网 时间:2024/04/29 04:26


这是一个很实用的junit实用技巧。在日常的开发中,我们经常需要对参数进行判空处理,例如一个函数。

public void test(String para1,Object para2)    {        if(para1!=null&¶2!=null){            //处理业务        }else {            //抛出异常,或者程序结束等        }    }

如果把每个参数分开来判断是否为空,那代码中if else 判断太多,不够清晰整洁,如果像上面一样放在一起判断,又不能够知道具体是哪个参数为空。这个时候,使用junit 的断言判断是一个很好的选择。

public void test(Object para1,Object para2) throws Exception {        Assert.notNull(para1, "para1 is required");        Assert.notNull(para2, "para2 is required");    }

如果参数为空,会向上抛异常,在最上层,程序的入口中,或者其他地方捕获这个异常。通过打印异常信息就能够捕捉到具体哪个参数为空,并且得到详细的说明。

这个可以稍微扩展一下,在开发中,我们经常需要确保某个类需要的属性 已经注入成功。例如service 执行需要的dao 已经注入成功

我们可以让当前的bean 实现spring 的InitializingBean接口,

public class TestServiceImpl implements TestService, InitializingBean {    /** testDAO */    private testDAO testDAO;       @Override    public void afterPropertiesSet() throws Exception {        Assert.notNull(testDAO, "testDAO instance is required");    }}
然后重写afterPropertiesSet()方法,这个方法会在bean 启动后执行,通过对注入参数进行非空判断,去确保程序的正确性


这篇文章,我之前在开源中国写过,但是感觉开源中国人气有点少,以后会搬家到csdn。

0 0