0

私の目標は、自分の Grails プラグインのテストを作成することです。これまでの手順:

  1. ステップ - Grails プラグインの「test」フォルダー内に個別の grails アプリ (この場合は testApp) を作成します。
  2. ステップ - BuildConfig.groovy に次の行を追加して、アプリケーション - testApp に対してプラグインをインラインにします。

    grails.plugin.location.PluginName = '../../../../PluginName'

問題は、単体テストでは、サービス (インライン プラグインから) が単体テストの通常のアプリのように挿入されないことです。サンプルテストは次のとおりです。

@TestFor(SampleService)
class SampleServiceUnitSpec extends UnitSpec {
    def "Sample Test"(){
        setup:
           def test = 'ok'

        when:
           test = "changed"

        then:
           assert service
           assert "changed" == test
    }
}

このテストが grails アプリから実行され、サービスがアプリの一部である場合、サービスが挿入されます。このテストが、サービスを含むインライン プラグインを使用して testApp から実行される場合、サービスは挿入されません。テストがプラグイン単体テストであり、サービスがプラグインで宣言されている場合、サービスは注入されません。

テストできるようにサービスを注入する方法は? Grails プラグインの最適なテスト方法に関する適切なドキュメント、posts.etc はありますか? ありがとうございました

4

1 に答える 1

0

アプリケーション内でプラグイン サービスの単体テストを作成する理由。自分のコードだけを気にするだけでアプリケーションが改善されるべきではありませんか?

懸念事項を分離することをお勧めします。プラグイン クラスはプラグインでテストし、アプリケーション クラスはアプリケーションでテストする必要があります。アプリケーションの観点から、サービスはプラグインで十分にテストされているため、「問題なく動作するはず」であると想定してください。

また、Grails プラグイン内でアプリケーションを作成しないことをお勧めします。test フォルダーは、テスト クラスのみに使用され、それ以上のものは使用されません。

プラグインの最新バージョンのみを維持したい場合は、アプリケーションを 1 つだけ (プラグイン外の別のフォルダーに) 作成し、常にそこで更新することができます。

複数のバージョン、または複数の Grails バージョンを維持する必要がある場合は、指定されたバージョンでテスト アプリケーションを作成する Groovy スクリプトの方が適切な方法かもしれません。

于 2013-05-30T12:59:08.843 に答える