1

ビジネス ロジックの単体テストに org.jnuit.Assert クラスを使用しています。

実行時に特定の状況が発生した場合、ビジネス ロジックは例外をスローします。たとえば、特定の変数にゼロ以外の値が必要です。

私の catch ブロックでは、次の文字列メッセージを確認したいと思います:「変数 var1 にはゼロ以外の値が必要です」。

次のコードスニペットが機能すると思いましたが、

try{
   //business logic
}catch(Exception e) {
   CharSequence charseq = "Variable var1 should have a non-zero value";
   Assert.assertEquals("Variable var1 should have a non-zero value",true,e.getMessage().contains(charseq));
} 

しかし、うまくいきません。任意の提案、どうすればこれを達成できますか?

ありがとう、ビジェイ・ボア

4

1 に答える 1

1

通常、例外がスローされたことを表明するだけで十分ですが、メッセージに文字列が含まれていると主張するのはなぜですか?あなたは次のようにJunitでこれを行うことができます:

@Test(expected=MyException.class)
public void test() {}

ただし、コードはそのまま動作するはずです。マッチャーを使用すると、例外にメッセージが含まれていない理由がわかりやすくなります。

Assert.assertThat(e.getMessage, contains("Variable var1...");
于 2012-11-30T00:08:44.930 に答える