如何将春豆注入spock测试

arr*_*man 6 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测试正在进行中.然而,当我尝试测试春豆时,我发现它们没有被注射.我使用这里提到的方法.businessObjectDao是内空块.我该如何工作?

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

    def "business never set at least once"() {
        when:
            BusinessObjectDao.getBusinessObject()
        then:
            ...
    }
}
Run Code Online (Sandbox Code Playgroud)

tol*_*ius 18

你很可能忘了包含一个Spock Spring依赖项.

以下是如何使用它:

行家

<dependency>
   <groupId>org.spockframework</groupId>
   <artifactId>spock-spring</artifactId>
   <version>0.6-groovy-1.8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

gradle这个

'org.spockframework:spock-spring:0.6-groovy-1.8'
Run Code Online (Sandbox Code Playgroud)

平凡的常规

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

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