9

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

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

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

2 回答 2

21

您很可能忘记包含 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是当前版本,如果你需要另一个,只需替换

于 2012-03-22T04:47:34.847 回答
0

对于到达这里但没有将其测试类注释为 Bean 的其他人(此问题中的示例确实有足够的注释),这当然至少是注入的必要先前步骤(通常)。

于 2021-09-01T00:39:18.417 回答