在junit测试中使用spy时,在void方法中获取空指针异常

时间:2017-11-09 09:19:53

标签: junit

我需要测试Service class

的'tableInfo'方法

这是我的junit测试脚本:

class JUnitTest extends Specification {

Service service
Table table = GroovyMock(Table)


def spy = Spy(Service){
    getTable() >> table
        }

def setup() {
    service = new Service(                
            table: table
            )
}

def "when table contains information"() {

    given:
    spy.internalMethod(*_) >> [Bean.BEAN_SUCCESS]
    table.getUnits(*_) >> {}        
    Response response = new Response()


    when:
    spy.tableInfo(.....)


    then:
    response.status == 0
    response.error == []

}

问题:我在table.getUnits中得到空指针异常,如下所示

  

“java.lang.NullPointerException:无法调用getUnits()方法   null object“

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

如果您想每次调用该方法。但需要注意异常方法,只需在调用table.getUnits()方法之前检查条件,如下所示。

 if(table.getUnits!=null)
   table.getUnits();