我在域对象中有以下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。