java - 如何将spring bean注入(inject)spock测试

标签 java spring dependency-injection spock

我是 spock 的新手。我正在尝试针对使用 JDK 1.7、Spring 3.1、Groovy 1.8.6、Spock 0.6、Maven 3.0.4 的独立 Java 应用程序编写 Spock 单元测试。一个基本的 hello world spock 测试正在运行。但是,当我尝试测试 spring bean 时,我发现它们没有被注入(inject)。我使用提到的方法 here . businessObjectDao 在when block 中为空。我如何让它工作?

@ContextConfiguration(locations = "classpath*:test-appContext.xml")
class BusinessObjectPersistenceTest extends Specification {
    @Autowired
    BusinessObjectDao businessObjectDao

    def "business never set at least once"() {
        when:
            BusinessObjectDao.getBusinessObject()
        then:
            ...
    }
}

最佳答案

您很可能忘记包含 Spock Spring 依赖项。

获取方法如下:

行家

<dependency>
   <groupId>org.spockframework</groupId>
   <artifactId>spock-spring</artifactId>
   <version>0.6-groovy-1.8</version>
</dependency>

渐变

'org.spockframework:spock-spring:0.6-groovy-1.8'

普通的常规

@Grapes(
    @Grab(group='org.spockframework', module='spock-spring', version='0.6-groovy-1.8')
)

*0.6-groovy-1.8 是当前版本,如果您需要另一个版本,只需替换

关于java - 如何将spring bean注入(inject)spock测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811345/

相关文章:

java - Spring boot - 无法关闭日志记录

java - HashMap中负载因子的意义是什么?

spring - 没有名为 'transactionManager' 的可用 bean

java - 使用 Spring DAO 和 Hibernate 的数据访问层。问题

java - 可以在 JSR 330 中将 @Inject 设为可选(如 @Autowire(required=false) 吗?

java - 线程池的工作方式不可预测

java - JSP 输入到 servlet 为空

java - Spring 安全: log in using roles from database

c# - 如何在 Ninject 中绑定(bind)通用类型接口(interface)

.net - 为 .NET 选择依赖注入(inject)框架时应该考虑什么