0
私はGrails 2.4.5と一緒に作業しており、Grailsにさまざまな例外タイプを説明するのに苦労しています。特定の例外に対するGrails Spockテスト
私は以下のモックとしたいとします
私はモックの依存クロージャ内FooExceptionは、デバッグ、しかしを投げていることを期待する
@TestFor(FooController)
class FooControllerSpec extends Specification {
def setup() { controller.barService = Mock(BarService) }
void "test"() {
given: "a mock dependency"
1* controller.barService.someMethod(_) >> { -> throw FooException('foo') }
when: "the action is requested"
controller.fooAction()
then: "expect the FooException behaviour from the action"
// some behaviour
}
以下の試験を考える
class FooController {
def barService
...
def fooAction() {
try {
barService.someMethod(params)
} catch(e) {
if (e instanceof FooException) { ... }
else if (e instanceof BarException) { ... }
else { ... }
}
}
代わりに以下を示します:
これはバグですか?上記の方法で異なる例外を模倣する方法はありますか?
事は、実装で例外がアクション内で処理されています。コントローラーは設計上、バブリングしていません。アクションが例外をスローしたかどうかをテストできるcatch(e)がスローされました。残念ながら、そのオプションはここでは利用できません。 –
FooExceptionの場合はどうなりますか? –
通常、ログアウトへのリダイレクトのようなものです。 –