Grailsサービスクラスに対してunit testsと書いています。サービスクラスは、複数のドメインクラスを使用します。ドメインクラスのモックを作成するには、mockDomain
メソッドを使用してチャームのように動作します。ドメインオブジェクトを正しく保存できるかどうかをテストするコードパス(ドメイン検証)も簡単に記述できます。しかし、私のコードでは、例外オブジェクトを扱うブロックtry/catch
でドメインオブジェクト操作をラップしました。ドメイン操作が例外をスローすることをシミュレートする方法はありますか? Mockito(thenThrow
)やEasyMock(andThrow
)のようなMockフレームワークで簡単に行うことができますが、主にGrailsのネイティブな方法を探しています。私は、Grailsのテストフレームワークを補完するフレームワークを公開しています。模擬ドメインクラスの例外をスローするシミュレーション
0
A
答えて
1
これはGroovyのメタクラスを使って簡単です。この例では、あなたのドメインクラスの1つがFooだと言います。
void testFooThrowsException(){
def fooInstance = new Foo()
fooInstance.metaClass.methodToTest = {arg1, arg2->
throw new CustomException("I'm an exception")
}
shouldFail CustomException, {fooInstance.methodToTest("val1", "val2")}
}
インスタンスのメタクラスを変更すると、インスタンスのライフサイクル全体が変更されます。 Read more on metaclassing on the Groovy site.これはGroovy、IMOの最もクールな部分の1つです。
関連する問題
- 1. サービスを模擬して例外をスローすることができません
- 2. ファイルのオープンとスロー例外の模倣
- 3. Beanutils.setPropertyのテストケースを模擬する方法例外シナリオ
- 4. 例外をスローするのではなく何かを返すメソッドを模擬する方法(PowerMock?)
- 5. NSubstitute - voidを返すメソッドで例外をスローする模様
- 6. 例外から例外をスローする
- 7. =例外をスローする例外
- 8. JMockitを使用してvoidメソッドの例外を模擬する方法
- 9. openFileOutput例外をスローする
- 10. OutOfMemoryError例外をスローする
- 11. RESTHEART例外をスローする
- 12. UseHangfireServer例外をスローする
- 13. コンテンツプロバイダ例外をスローする
- 14. バブルソート例外をスローする
- 15. Mockito例外をスローする
- 16. カスタム例外をスローする
- 17. 例外をスローする
- 18. parseObject.saveInBackground()スロー例外
- 19. スロー例外
- 20. eglGetDisplay()スロー例外
- 21. プライベートコンストラクタの模擬
- 22. プリンターの模擬
- 23. Androidのスロー例外
- 24. ライブラリのスロー例外
- 25. C++例外のスロー
- 26. Windowsインストーラを模擬する
- 27. @scheduled cron式の例外スロー例外
- 28. 例外と例外のスロー。<T>?
- 29. 例外をキャッチして別の例外をスローする方法
- 30. 模擬OLAP