Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有什么方法可以从Spock扩展访问Springbean吗?_Spring_Testing_Spock - Fatal编程技术网

有什么方法可以从Spock扩展访问Springbean吗?

有什么方法可以从Spock扩展访问Springbean吗?,spring,testing,spock,Spring,Testing,Spock,这里有一个我想做的例子。 服务客户机是一个Springbean,它从外部配置类检索,应该从Spock扩展调用 class ServiceCleintExtension implements IGlobalExtension { @Autowired ServiceCLient client @Override void start() { client.execute() } ... } UPD: 我通过使用Spring Te

这里有一个我想做的例子。 服务客户机是一个Springbean,它从外部配置类检索,应该从Spock扩展调用

class ServiceCleintExtension implements IGlobalExtension {

    @Autowired
    ServiceCLient client

    @Override
    void start() {
       client.execute()
    }

    ...
}
UPD
我通过使用Spring TestExecutionListener和SpecInfo/FeatureInfo的自定义静态“容器”找到了一个解决方案。

不,这是不可能的,
IGlobalExtension
由Spock初始化和管理。此外,它们是单例,不能很好地与多个可能的Spring上下文相匹配

如果您只想在安装过程中调用注入bean上的方法,那么我建议使用基于注释的扩展。查看内置的
AutoCleanup
扩展以供参考