私は、Grails 1.xx リリースからアップグレードされたと思われる Grails プロジェクトを取り上げました。
Grails CLI を使用すると、コードをコンパイルして WAR をビルドできますが、「grails test-app -unit」コマンドを実行すると、テストの 2 分の 1 以上が失敗します。
GGTS 内で JUnit テストを実行すると、テストに合格しますか?!?!?。上記の Grails コマンドを GGTS 内で実行すると、上記で強調したのと同じエラーが発生します。
主な失敗の理由は GMock にあるようです。次の出力が各スタック トレースの上部に表示されます。
groovy.lang.MissingMethodException: メソッドの署名がありません: org.gmock.internal.metaclass.MockProxyMetaClass$2.doCall() は引数の型に適用できます: () 値: [ ]
この失敗が発生するコード行の例は次のとおりです。
サンプル A
aService.dbWrapper = mock()
aService.dbWrapper.getDB().returns(mockDB) // failure on this line
サンプル B
aService.anotherService = mock()
aService.anotherService.getSource(ID).returns(SOURCE) // failure on this line
次の構成を使用しています。
- GMock 0.8.3
- グレイル 2.2.0
- グルービー 2.0.5
- GGTS 3.2.0
Grails CLI を使用してこのようにテストが失敗するのに、JUnit テストとして実行すると GGTS で正常に動作する理由を誰かが明らかにすることはできますか?