首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将规则注入spock规范

将规则注入spock规范
EN

Stack Overflow用户
提问于 2013-07-09 17:54:14
回答 2查看 943关注 0票数 3

我试图将在spring上下文中配置的规则注入到spock规范中。

代码语言:javascript
复制
@ContextConfiguration(locations=["spring.xml"])
class TestSpec extends Specification {
    @Rule @Inject //@Autowired
    public ActivitiRule activitiRule;

    @Deployment
    def "Process test"() {
    when:
    //...
    then:
    //...
    }
}

问题是spock自己实例化规则,而没有遵守@Inject@Autowired注释。在JUnit中,这与预期的一样。有可能将规则注入spock吗?

EN

回答 2

Stack Overflow用户

发布于 2013-07-10 06:46:11

有趣的用例。问题是Spock的Rule扩展在Spock的Spring扩展注入规则之前就调用了它。也许可以解决这个问题。如果你不介意,请在http://issues.spockframework.org上提交一个问题。目前,只有注入MethodRules (而不是TestRules)才能按预期工作。

票数 1
EN

Stack Overflow用户

发布于 2013-07-11 01:48:43

只要这不是开箱即用的(参见Issue),我发现的一种可能的解决方法是使用Spring TestExecutionListener而不是TestRule,这当然只有在您自己编写规则时才有用。

在TestExecutionListener中,您可以访问ApplicationContext,并可以获得所需的任何bean。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17545264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档