シンプルなクラスをテストするためにここにJUnitのテストケースがあります。基本的に、クラスには2つの数値の合計を返す 'sum'というメソッドが1つだけ含まれています。これが正しいかどうかをテストするには、次の方法を使用します。Assert.assertEquals(2, my_object.sum(1, 2));
結果は、eclipseのタブの「Failure Trace」セクションに表示されます。メッセージには、junit.framework.AssertionFailedError: expected:<2> but was:<3>
と表示されます。このメッセージを取得してString変数に入れることは可能ですか?JUnit assertEquals()メソッドの出力を取得して変数に入れる方法は?
答えて
が
Asserts that two objects are equal. If they are not, an AssertionError without a message is thrown. If expected and actual are null, they are considered equal.
あなたはあなたの状態が失敗したときAssertionError
をキャッチする必要があります。
は、このコードを試してみてください。
@Test
public void myTest() throws Exception{
String assertionError = null;
try {
Assert.assertEquals(2,3);
}
catch (AssertionError ae) {
assertionError = ae.toString();
}
System.out.println(assertionError);
}
OUTPUT:AssertionErrorを訪問Javaのドキュメントに関する詳細情報については
java.lang.AssertionError: expected:<2> but was:<3>
申し訳ありませんが、これのポイントは何ですか? JUnitテストのアイデアは**自動化**実行を可能にすることです。全体のフレームワークは、失敗したテストケースが... AssertionErrorsを投げるという考えに基づいています。すべてのテストを実行しているフレームワークがそれらをキャッチします。確かに、あなたは自分でそれをキャッチすることができますが、あなたがそれをしている場合...あなたは完全な9ヤードを行くことができ、完全にすべてのJunitテストを捨てることができます。あなたはちょうどそれを無価値なものにしたから**。 – GhostCat
@Jägermeisterあなたは間違いなしです。 AssertionErrorをキャッチすることに意味はありません。 OPはこの特定の質問(彼の宿題について)を求めてきたので、私は答えました。 – Unknown
私はその部分を得ました。私は、単に私が行方不明になっているより深い意味があるかどうか疑問に思っていました。のように:家事;教師は「合理的な」ことを求めるべきであると期待しています。生徒にフレームワークを完全に「壊れた」方法で使用するように依頼するのではなく、 – GhostCat
assertEquals
は、void
の方法である。結果を変数に入れることはできません。しかし、try/catch
ブロックで例外を得ることができます。
try{
assertEquals("foo", "foo1"); //will fail
} catch(AssertionError e){
String message = e.getMessage();
//do whatever you want with e
}
私はそれを試したが動作しません。実際には、assertEqualsが失敗したときにこれはキャッチされません。次の行は、失敗したときには実行されません。 –
私の悪い、それを固定!問題は 'AssertionError'が' Exception' bu 'Error'を拡張しないということです。ですから、@Unknownが示唆しているように 'AssertionError'をキャッチする方が良いでしょう。 –
- 1. ストアドプロシージャを使用して出力変数の数を取得する方法は?
- 2. のJUnitのassertEqualsの変更文字列
- 3. NetBeansの出力タブから入力を取得する方法
- 4. ユーザー入力から入力された変数の値を取得する方法は?
- 5. メソッド内のユーザー入力を取得する方法(Python)
- 6. 入力から値を取得し、それをjQuery変数として使用する方法は?
- 7. 関数がユーザー入力を取得するJUnitでのテスト関数
- 8. グローバル変数/コマンドライン引数を取得してそれを出力する
- 9. 関数の出力をbashの変数に代入する方法は?
- 10. アクションメソッドのAjax.ActionLink呼び出しのユーザー入力を取得する方法は?
- 11. JUnitのバージョンを取得する方法
- 12. ユーザ入力(スキャナから)を取得して入力全体をasciiに変換する方法
- 13. 複数の入力を取得する方法
- 14. ANTを使用して、jUnit出力をサマリーに縮小する方法は?
- 15. JUnitテストでキーボード入力を取得する
- 16. メソッドのデフォルトの変数定義を取得する方法
- 17. jquery:入力テキスト取得する方法
- 18. コマンドを実行して出力を取得する方法
- 19. iPhone入力中にUITextFieldのテキストを取得する方法は?
- 20. C可変関数入力から文字列を取得する方法
- 21. 出力をシェルスクリプト変数に割り当てる方法は?
- 22. ユーザーCから入力整数を取得する方法
- 23. カスタム入力メソッドを呼び出す/設定する方法は?
- 24. Objective-C変数をC++メソッドから取り出す方法は?
- 25. maximaでsolveの出力を変数に代入する方法は?
- 26. rubyのスクリプトを使って関数を取得する入力を入力する方法
- 27. 出力の次の行に入力を取得する
- 28. Lasagne/nolearn autoencoder - 隠れ層の出力を取得する方法?
- 29. Put_Lineメソッドを使用して整数を出力する方法は?
- 30. 文字列から数字を取り出してarrayListに入れる方法
あなたが本当にし何をしようとしていますか? – sisyphus
なぜそれをしたいですか? –
JUnitのテストケースを宿題として使ってクラスを評価するWebシステムを構築する必要があるので、このメッセージを受けて最終的なユーザーに提示する必要があります。 –