4

私はテストに少し慣れていないので(怖いですよね)、これが無知であるなら許してください。

テストフレームワークに加えられた変更に照らして、spock-spring0.7-groovy-2.0は新しいSpring3.2リリースと互換性がありますか?

私はテストの下で両方のSpring3.2ドキュメントを調べました:

ニュースの下のスポックドキュメントと同様に:

しかし、新しいSpring 3.2テストフレームワークで、Spock仕様のテストコンテキストをSpring 3.2テスト(Spring 3.2ドキュメントセクション11.3.4)で説明した方法で構成して、注釈付きBeanを注入できるかどうかを判断するのに役立ちます。

とにかく試しましたが、注入されたBeanに依存しないテストは問題なく合格しましたが、テストコンテキストのロードに失敗しました。

@ContextConfigurationの試行の詳細(上記のSpring 3.2ドキュメントセクション11.3.4で両方locations=classes=パターンを試しました)を提供できますが、今のところ私の質問はこれだけです:スポック仕様のテストコンテキストはまだ構成できますかSpring3.2で動作しますか?

もしそうなら、成功した例は素晴らしいでしょう(Spockが周りにあるSpring 3.2は見られません)。

ありがとう。

4

2 に答える 2

3

私の知る限り、SpockのSpring統合は、Spring3.2の新しいテスト機能で正常に機能するはずです。JUnitを使用したSpringベースのアプリケーションのテストと比較すると、必要な変更は(いつものように)次のとおりです。

  • @RunWith注釈を削除します
  • テストspock-springクラスパスを設定する

Springテスト基本クラスを拡張する古いアプローチを使用できないことに注意してください。代わりに、アノテーションベースのSpringテストアプローチを使用する必要があります。

上記の戦略が機能しない場合(およびJUnitで同じテストを使用している場合)は、http://issues.spockframework.orgで問題を送信してください。

于 2013-02-06T11:47:44.120 に答える
1

Peterの答えに触発されて、テストコンテキストが適切に設定されていることがわかりました。これが私が使用したものであり、正しく実行されました。

PersonServiceSpec.groovy:

@ContextConfiguration(locations="classpath*:/PersonServiceSpec-context.xml")
class PersonServiceSpec extends Specification {

    @Autowired
    PersonService personService;

    def username

    def setup() {
        this.username = "tester"
    }

    def "Does search for username pull tester" () {

        expect: "tester" == username;
    }

    def "PersonService exists" () {
        expect: personService != null;
    }

}

このPersonServiceSpec-context.xmlをクラスパス(私のMavenプロジェクトのsrc / main / resource)に配置します。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="personSevice" class="<qualifiedname>.services.TPersonServiceImpl" >
</bean>

</beans>

そして、私のインターフェースメソッドを実装したスタブTPersonServiceImplクラス。PersonService

テストに合格しました。

于 2013-02-06T22:46:18.090 に答える