3

重複の可能性:
Java 列挙型をモックして値を追加し、失敗した場合をテストする

列挙型で機能する switch ステートメントがあります。スイッチの「デフォルト」ケースでは、実行時例外がスローされます。誰かが列挙型に値を追加したが、switch ステートメントを更新するのを忘れたという状況をトラップするために、このようにコーディングされています。

この実行パスをテストしたいのですが、未使用の列挙値をライブ コードに挿入せずにテストする方法を見つけるのに苦労しています。これは列挙型の誤用ですか、それともこのテストを書くための受け入れられた方法はありますか?

4

1 に答える 1

1

これをテストするためにあなたができると私が考えているのは、基本的に次のような列挙型のすべての値を取得するテストケースを用意することです

T[] allEnumValues = enumValue.getDeclaringClass().getEnumConstants();

また

T[] allEnumValues = enumType.values();

そして、それぞれを取り、switchステートメントに入れます。例外が発生した場合は、問題があります。

PS:メソッドへのリンクgetEnumConstants()

于 2012-06-11T14:17:15.283 に答える