我需要执行一次代码块启动时在 Spock 测验。我不能用 @Autowired 在 setupSpec() 但是,这是这种初始化的默认方法 @Bean 直到那个时候才能装子弹。在网上找到(可追溯到2015年)来源:这种行为是spring的testcontext框架设计的结果。我看不出有什么办法能在不碰到其他问题的情况下改变它。在junit中使用testcontext框架时,情况没有任何不同。已经6年了,有没有干净的方法?我想省去那些肮脏的解决方法
Spock
@Autowired
setupSpec()
@Bean
w1jd8yoj1#
你很幸运,感谢@erdi在spock-spring模块的@shared-fields中实现了这个功能,你可以在spock-snapshot2.0版本中尝试这个功能,它将在spock-2.0m5版本中出现。你需要选择加入 @Shared 通过放置注入 @EnableSharedInjection 在您的规范中,阅读javadoc并理解上述操作的含义也是非常重要的。
@Shared
@EnableSharedInjection
1条答案
按热度按时间w1jd8yoj1#
你很幸运,感谢@erdi在spock-spring模块的@shared-fields中实现了这个功能,你可以在spock-snapshot2.0版本中尝试这个功能,它将在spock-2.0m5版本中出现。你需要选择加入
@Shared
通过放置注入@EnableSharedInjection
在您的规范中,阅读javadoc并理解上述操作的含义也是非常重要的。