奇怪的是,您的代码会发生触发器,然而,如果您正在测试Groovy代码,那么您应该使用
GroovyMock
而不是
Mock
(另请参见
docs
),它对Groovys的一些特殊功能有额外的支持。
当规范下的代码用Groovy编写时应使用
并且需要一些独特的Groovy模拟特性。调用时
从Java代码来看,Groovy模拟的行为将类似于常规模拟。请注意
仅仅因为代码在
规范和/或模拟类型是用Groovy编写的。除非你有
在本例中,您(或您的代码)正在使用Groovy的一些特殊功能,即Groovy MOP方法
getProperty
.
GroovyMock公司
GroovyMockInterceptor
处理这些特殊方法,例如归一化
getProperty('x')
到
getX()
void "test something"() {
Person personMock = GroovyMock(Person)
when:
someObject.updatePersonName(personMock, 'new name')
then:
1 * personMock.getName() >> 'old name'
1 * personMock.setName('new name')
}