-
Notifications
You must be signed in to change notification settings - Fork 10
[Web] Test case design of ExceptionHandling
atsushi yoshikawa edited this page Jul 21, 2017
·
10 revisions
org.terasoluna.gfw.common.exception、org.terasoluna.gfw.web.exceptionパッケージのテスト
テストケースクラス:
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
1.1
|
40X系
|
BusinessException
Serviceで発生したBusinessExceptionをControllerでtry catchを行い、
WARNLogが出力されていることの確認を行うテスト
|
|
|
1.2
|
40X系
|
BusinessException
ResultMessagesLoggingInterceptorの拡張テスト
カスタムResultMessagesLoggingInterceptorを作成し、出力されるログのレベルを変更できること。
|
|
|
※ 1 基本全ての試験で確認 ※ ログの確認は、DBに出力内容を登録し、アサーションする。
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
2.1
|
10X系
|
試験用の独自例外
HandlerExceptionResolverLoggingInterceptorのログが出力されることの確認のテスト
ステータスコードが100の場合、INFOログが出力されることのテスト
|
|
|
2.2
|
20X系
|
試験用の独自例外
HandlerExceptionResolverLoggingInterceptorのログが出力されることの確認のテスト
ステータスコードが200の場合、INFOログが出力されることのテスト
|
|
|
2.3
|
30X系
|
試験用の独自例外
HandlerExceptionResolverLoggingInterceptorのログが出力されることの確認のテスト
ステータスコードが300の場合、INFOログが出力されることのテスト
|
|
|
2.4
|
40X系
|
OptimisticLockingFailureException
HandlerExceptionResolverLoggingInterceptorのログが出力されることの確認のテスト
ステータスコードが409の場合、WARNログが出力されることのテスト
|
|
|
2.5
|
40X系
|
PessimisticLockingFailureException
HandlerExceptionResolverLoggingInterceptorのignoreExceptionsに指定された
例外の場合、ログが出力されないことの確認テスト
|
|
|
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
3.1
|
50X系
|
SystemException
SystemExceptionへのエラーコード指定に係らず、レスポンスコードによりログレベルが決定することの確認のテスト
SystemExceptionResolverを用いた例外ハンドリングのテスト(SystemExceptionのメッセージ指定)
|
|
|
3.2
|
50X系
|
SystemException
SystemExceptionへのエラーコード指定に係らず、レスポンスコードによりログレベルが決定することの確認のテスト
SystemExceptionResolverを用いた例外ハンドリングのテスト(SystemExceptionのThrowableクラスを指定)
|
|
|
3.3
|
50X系
|
SystemException
SystemExceptionへのエラーコード指定に係らず、レスポンスコードによりログレベルが決定することの確認のテスト
SystemExceptionResolverを用いた例外ハンドリングのテスト(SystemExceptionのメッセージ指定、Throwableクラスを指定)
|
|
|
3.4
|
50X系
|
SystemException
SystemExceptionResolverを用いた例外ハンドリングで、リダイレクト後の例外メッセージの引き継ぎのテスト
|
|
|
3.5
|
50X系
|
ResultMessagesNotificationExceptionを実装した独自Exception
ResultMessagesNotificationExceptionの実装クラスで、ResultMessagesを指定した場合の、
エラー画面への引継ぎのテスト
SystemExceptionResolverを用いた例外ハンドリングのテスト
|
|
|
3.6
|
50X系
|
ResultMessagesNotificationExceptionを実装した独自Exception
SystemExceptionResolverの拡張テスト resultMessagesAttributeにnullを指定する場合のテスト
|
|
|
3.7
|
40X系
|
ResourceNotFoundException
ResourceNotFoundExceptionがスローされた場合の例外ハンドリングのテスト
SystemExceptionResolverの拡張テストexceptionMappingsの設定、exceptionCodeResolverの設定確認
|
|
|
3.8
|
50X系
|
DataAccessException
SystemExceptionResolverの拡張テスト defaultStatusCode、defaultErrorViewの設定確認
|
|
|
3.9
|
50X系
|
SystemException
SystemExceptionResolverの拡張テスト exceptionCodeAttribute、exceptionCodeHeaderの設定確認
|
|
|
3.10
|
40X系
|
InvalidTransactionTokenException
共通ライブラリの、TransactionTokenの例外ハンドリングテスト
SystemExceptionResolverを用いた例外ハンドリングのテスト
|
|
|
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
4.1
|
50X系
|
JspTagException
ServletContainerによる例外ハンドリング
View層でエラーが発生した際に<error-page>に指定したパスに遷移するテスト
|
|
|
4.2
|
50X系
|
ServletException(java.lang.Errorのサブクラス)
致命的エラー発生時のServletContainerによる例外ハンドリング
ServiceクラスでAssertionErrorが発生した際に<error-page>に指定したパスに遷移するテスト
|
|
|
4.3
|
50X系
|
IndexOutOfBoundsException
ServletContainerによる例外ハンドリング
ExceptionLevelResolverとの連携確認のテスト
|
|
|
4.4
|
50X系
|
IOException
ServletContainerによる例外ハンドリング
Filterでエラーが発生した際に<error-page>に指定したパスに遷移するテスト
|
|
|
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
5.1
|
40X系
|
試験用の独自例外
カスタムExceptionLevelResolverでのPrefixによるログレベルの出力テスト(ExceptionLoggingFilter)
|
|
|
5.2
|
40X系
|
試験用の独自例外
カスタムExceptionLevelResolverでのPrefixによるログレベルの出力テスト(ExceptionLoggingFilter)
|
|
|
5.3
|
40X系
|
試験用の独自例外
カスタムExceptionLevelResolverでのPrefixによるログレベルの出力テスト(ExceptionLoggingFilter)
|
|
|
5.4
|
40X系
|
試験用の独自例外
defaultCode、defaultMessageの差し替えのテスト(HandlerExceptionResolverLoggingInterceptor)
|
|
|
5.5
|
40X系
|
試験用の独自例外
trimLogMessageの無効化、logMessageFormatの差し替えのテスト(HandlerExceptionResolverLoggingInterceptor)
|
|
|
5.6
|
40X系
|
試験用の独自例外
カスタムExceptionCodeResolverでのエラーコードの紐付けが可能であることのテスト(HandlerExceptionResolverLoggingInterceptor)
|
|
|
項番 | 観点 | 試験項目 | 試験条件 | 確認内容 |
---|---|---|---|---|
6.1
|
40X系
|
BusinessException
Serviceの中でSharedServiceを呼び出して、SharedService内でBusinessExceptionをthrowして、
Serviceがそのままthrowした場合、ログが1回だけ出力されていることを確認するテスト
|
|
|
6.2
|
40X系
|
BusinessException
Serviceの中でSharedServiceを呼び出して、SharedService内でBusinessExceptionをthrowして、
Serviceがcatchした場合、ログが出力されていないことを確認するテスト
|
|
|