Spock可以窥探真实物体吗?

时间:2015-02-06 15:42:27

标签: testing groovy spock

我想窥探Spring bean的方法调用。我查了docs - Spock只能通过构造函数创建间谍。 Spock可以通过spy包装已存在的对象吗?

2 个答案:

答案 0 :(得分:3)

似乎无法完成,因为API并不支持它。看看API。以下代码运行时出现错误:

@Grab('org.spockframework:spock-core:0.7-groovy-2.0')
@Grab('cglib:cglib-nodep:3.1')

import spock.lang.*

class Test extends Specification {
    def 'test'() {
        given:    
        def o = new Object()
        def s = Spy(o)
    }
}

答案 1 :(得分:0)

来自官方Spock framework documentation

您还可以从实例化对象创建间谍。如果您无法完全控制要监视的类型的实例化,这可能会很有用。 (例如,在依赖注入框架(例如Spring或Guice)中进行测试时。)