krz*_*kov 4 java spring spring-test spock
我需要在测试启动时执行一次代码块Spock。我无法使用@Autowiredin setupSpec()which is default 方法进行此类初始化,但是@Bean直到那时 s 才会被加载。
在网络上找到(可追溯到 2015 年)来源:
该行为是 Spring 的 TestContext 框架设计的结果。我看不出有什么办法可以在不遇到其他问题的情况下改变它。将 TestContext 框架与 JUnit 结合使用时,情况没有任何不同。
已经六年了,有什么干净的方法可以做到这一点吗?我想省略肮脏的解决方法
你很幸运,感谢 @erdi 在Add support for Injection into @Shared fields in spock-spring module 中实现了这一点,你可以在 Spock Snapshot 2.0 版本中尝试该功能,它将出现在 Spock-2.0M5 版本中。您需要通过放置您的规范来选择加入@Shared注入@EnableSharedInjection,这也非常重要,您阅读 javadoc 并理解这样做所提到的含义。
| 归档时间: |
|
| 查看次数: |
2099 次 |
| 最近记录: |