9

スポックは初めてです。JDK 1.7、Spring 3.1、Groovy 1.8.6、Spock 0.6、Maven3.0.4を使用するスタンドアロンJavaアプリに対してスポックユニットテストを作成しようとしています。基本的なhelloworldスポックテストが機能しています。しかし、春の豆をテストしようとすると、注入されていないことがわかります。ここで説明したアプローチを使用します。businessObjectDaoはwhenブロック内でnullです。これを機能させるにはどうすればよいですか?

@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

SpockSpringの依存関係を含めるのを忘れた可能性があります。

を使用して取得する方法は次のとおりです。

Maven

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

gradle

'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 に答える