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


这是一个很实用的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。

你可能感兴趣的:(junit,spring,Assert,参数)