シンプルなクラスをテストするためにここに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. PHP変数にmysql出力を取得する方法は?
- 3. 出力値をRの変数に入れる方法は?
- 4. QLineEdit/storeの入力を変数に出力する方法は?
- 5. のJUnitのassertEqualsの変更文字列
- 6. Java OOP変数のユーザー入力を取得する方法
- 7. AWKコマンドの出力を変数に入れる方法
- 8. フィルタテーブルのidを入力として取得し、出力としてデータを取得する方法
- 9. 入力フィールドに取得したデータを入れる方法 -
- 10. 関数の出力を取得し、別の関数の入力として使用する方法python?
- 11. MS-DOSコマンドの出力を変数として取得する方法
- 12. 入力ファイルの出力ファイル形式を取得する方法
- 13. NetBeansの出力タブから入力を取得する方法
- 14. JUnit Testing :: assertEquals()の問題
- 15. 入力した関数を入力してtkinterに出力する方法
- 16. メソッド内のユーザー入力を取得する方法(Python)
- 17. ユーザー入力から入力された変数の値を取得する方法は?
- 18. あいまいなメソッド呼び出しアサートとアサートの試合で(ダブル、ダブル)のassertEqualsで両方のassertEquals(オブジェクト、オブジェクト):
- 19. 入力から値を取得し、それをjQuery変数として使用する方法は?
- 20. バッチスクリプトで出力ファイル名として出力されるコマンドの取得方法
- 21. メソッドを呼び出さずにインスタンスオブジェクトのプライベート変数を取得する方法
- 22. onfocus()メソッドを呼び出さずにjavascript&tagName(no jQuery)を使用して入力テキストを取得する方法
- 23. シェルスクリプト変数へのCコード出力の取得方法
- 24. Jquery:入力時にユーザーの入力を取得する方法
- 25. JavaScriptの入力から数値を取得する方法は?
- 26. 関数がユーザー入力を取得するJUnitでのテスト関数
- 27. にサブプロセスの出力を挿入する方法変数
- 28. オブジェクトのforループ出力を変数に代入する方法
- 29. catch節を入力してテストする方法。 Springブート、Junit、Mockito
- 30. Junitを使用してオブジェクトを出力するテスト方法
あなたが本当にし何をしようとしていますか? – sisyphus
なぜそれをしたいですか? –
JUnitのテストケースを宿題として使ってクラスを評価するWebシステムを構築する必要があるので、このメッセージを受けて最終的なユーザーに提示する必要があります。 –