私は現在、小さなライブラリの単体テストのセットを完成させようとしています。異なる実装が存在するようにしたいので、このテストセットを(a)汎用的にして、別の実装をテストするために再利用できるようにし、可能な限り完全なものにします。 (b)の部分については、enum型をテストするためのベストプラクティスがあるかどうかを知りたいと思います。だから、例えば次のように私は列挙型を持っている:列挙型をテストするには?
public enum Month {
January,
February,
...
December;
}
ここで私は、すべてのenum型が実際に存在することを確認します。それは必要なのでしょうか?現在、私は次の例のようにHamcrestsにassertThat
を使用しています:
assertThat(Month.January, is(notNullValue()));
不足している「1月」列挙型は1つが作成欠けている列挙型で修正することができ、コンパイル時エラーになります。
編集..私はここにJavaを使用していますが、あなたの答えは異なる言語のためであれば、私は気にしない
:mkatoとマーク・ヒースとして
は、両方のテストの列挙型を指摘している可能性があなたがそこにない列挙型を使用しているときにコンパイラはコンパイルされないので、必要ではありません。しかし、私はまだ別の実装で同じテストを実行する別々のTCKのようなtest.jarを構築したいので、これらの列挙型をテストしたいと思います。だから、私の質問は、より多くのように意味されていた:列挙型をテストする最良の方法は何ですか?
もう少しそれについて考えて後、私はに上Hamcrestステートメントを変更:1月がない場合、この文は今(まだ)NPEをスロー
assertThat(Month.valueOf("January"), is(notNullValue()));
。このアプローチに何か問題はありますか?
私は、テストしたい1つのメソッドを持つ列挙型を持っています。私は単体テストのルーキーであり、そのメソッドのテストケースを記述する方法を見つけることができません。 。 – dirtydexter
"assertThat(Month.January、is(notNullValue()));" OPの質問ではあなたのための例が十分ではない、私はあなたが別の質問としてそれを聞いて、あなたがテストしようとしているものの例を提供する方が良いと思う。 JUnit自体の助けが必要なように私に聞こえます。 – aberrant80
そうですね、ありがとうございます。 – dirtydexter