如何使用Spock和Grails模拟父类

时间:2014-05-22 19:48:55

标签: unit-testing grails spock

我在域对象中有以下grails代码......

@Override
StatusEnum getStatus(Date activeDate) {
    StatusEnum returnVal = super.getStatus(activeDate)
    if(address.getStatus() == StatusEnum.ACTIVE){
        returnVal
    }
    else{
        return StatusEnum.INACTIVE
    }
}

我正在尝试测试这个,我想做这样的事情......

def "Make sure a invalid account address is invalid"(){
    given:
    Address address = Spy(Address)
    address.getStatus() >> StatusEnum.INACTIVE
    Date dt = new Date()
    ((PerishableDomain)domain).getStatus(dt) >> StatusEnum.ACTIVE
    when:
    def status = domain.getStatus(dt)
    then:
    status == StatusEnum.INACTIVE

}

问题在于((PerishableDomain)domain).getStatus(dt) >> StatusEnum.ACTIVE,这当然不起作用。没有离开grails自动装配或使用其他测试框架,如Mockito?

澄清

以上代码是我希望它做的,但它不起作用。

我想模拟的方法是super.getStatus(activeDate),我希望它在不调用父类的情况下返回true。

0 个答案:

没有答案