私は Grails REST アプリケーションを構築しており、Spock を使用して機能テストを作成しました。これらの機能テストは REST サービス専用であることに注意してください。
class LoginFunctionalSpec extends Specification {
def setUp() {
// here I want to access grailsApplication.config
}
}
私はすでに次のアプローチを試しました:
- grailsApplication を (クラス レベル変数として定義して) 注入しますが、何も注入されません。
- ApplicationHolder.application.config を使用しますが、廃止されており、提案されたアプローチは前のポイントでした。
- プラグイン remote-control:1.4 を使用しようとしましたが、grails コンソールにはプラグインがインストール済みとして表示されましたが、クラス RemoteControl が見つかりませんでした。また、私はこのアプローチについて確信が持てませんでした
- grails-app/conf/Config.groovy をファイルとして読み込もうとしましたが (こちらで説明されています)、FileNotFoundException が発生しました。
しかし、機能テスト内で grailsApplication.config を提供してくれるものはありません。
これを達成する方法はありますか?
アップデート
@dmahapatro
私は REST サービスをテストしており、ブラウザの自動化は必要ないため、Geb は使用していません。
ポイント#1で述べたように、grailsアプリケーションは自動注入されていません。
class LoginFunctionalSpec extends Specification {
def grailsApplication
def setUp() {
def port = grailsApplication.config.mongo.port //throws NPE
}
}
構成プロパティがnullオブジェクトで呼び出されていることを示すNPEをスローします。