0
저는 Grails 2.4.5를 사용하여 Grails가 다른 예외 유형을 정의하는 데 어려움을 겪고 있습니다.특정 예외에 대한 Grails Spock 테스트
은 가정하자 나는 아래의 조롱하려는 :
class FooController {
def barService
...
def fooAction() {
try {
barService.someMethod(params)
} catch(e) {
if (e instanceof FooException) { ... }
else if (e instanceof BarException) { ... }
else { ... }
}
}
내가 모의 종속 폐쇄 내 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
}
아래의 테스트를 감안할 때, 디버깅 대신 아래에 표시됩니다 :
이것은 버그입니까? 위에 설명 된 방식으로 다른 예외를 조롱하는 방법이 있습니까?
는, 구현의 예외 조치 내에서 처리됩니다. 컨트롤러가 의도적으로 컨트롤러를 버블 링하지 않습니다. 액션이 예외를 던졌는지 테스트 할 수있는'catch e '가'throw e'가되었습니다. 불행히도이 옵션은 여기에서 사용할 수 없습니다. –
FooException의 경우에는 무엇을합니까? –
일반적으로 로그 아웃으로 리디렉션되는 것과 같습니다. –