2016-10-07 6 views
0

私はGrails/Groovy newbです。私はGroovyに1つか2つのスクリプトを書きましたが、テストはしません。私の背景はJavaです。Grails 2.3.9でモックフィールドをモックするにはどうしたらいいですか?

プロジェクトは、Java 8と最新のjar用に更新したいテストハーネスの古くからの部分です。

私はこれを読んできました: http://docs.grails.org/2.3.9/guide/testing.html ...しかし、私は理解できません。私が修正しようとしているテストは、ヌル能力に関連するエラーで応答することです。

テストは次のようになります

@TestFor(SomethingController) 
@Mock(Something) 
class SomethingControllerTests { 
... 
    void testDelete() { 
     controller.delete() 
     assert flash.message != null 
     assert response.redirectedUrl == '/somethingPills/list' 

     response.reset() 

     populateValidParams(params) 

     def SomethingPills = new SomethingPills(params) 

     def saveValueReturned = SomethingPills.save() 

     assert saveValueReturned != null 
     assert SomethingPills.count() == 1 

     params.id = SomethingPills.id 

     controller.delete() 

     assert SomethingPills.count() == 0 
     assert SomethingPills.get(somethingPills.id) == null 
     assert response.redirectedUrl == '/somethingPills/list' 
    } 

} 

結果は例外が保存が失敗したことを示すassert saveValueReturned != nullラインで実行チャックされることです。デバッグの実行中にSomethingモックを調べると、エラーフィールドを除いてすべてのフィールドがヌルであることがわかります。 errorsフィールドには、いくつかのフィールドに関連するnullablleエラーがリストされます。明らかに私がしなければならないことは、これらを擬似的に設定することです。私が必要とするのは、それを行う方法の手がかりです。

答えて

1

あなたのコードから、SomethingPillsはGrailsドメインクラスです。 paramsを渡して保存しようとしているので、SomethingPillsが保存するために必要な値をparamsに設定する必要があります。そうしないとSomethingPillsはValidationExceptionエラーをスローします。

populateValidParams(params)は、SomethingPillsが保存するために必要なすべてのプロパティでparamsを設定していない可能性があります。

+0

はい。実際、populateValidParamsメソッドは空です。私が正しく理解しているならば、私がしなければならないことは、それに適切な値を設定することだけです。 – user447607

+0

OK、私は以前これをやろうとしていましたが、うまくいきませんでした。今私は理由を理解する。満たすべき制約がある。ちょうどそれらについて学んだ。 – user447607

+0

これはうまくいっていることを知ってうれしいです。 – elixir

関連する問題