2011-08-02 8 views
2

jUnitとSeleniumを初めて使用しました。現在、ツールの適合性を評価するプロジェクトでPOCを実施しています。jUnit AssertFailureのカスタマイズエラーメッセージ - slf4jログとの組み合わせ

私たちにとって重要な要件の1つは、アサーションエラーの場合にフレンドリなメッセージを使用し、失敗を確認することです。その目的は、それらのユーザを直観的に保つことによって手動テスタによって分析されたものを有することである。

私はユーザーフレンドリーなメッセージのためにINFOメッセージを記録するためにSLF4Jを試しています。

私が直面している課題は、アサーションが失敗した場合、jUnitのデフォルトメッセージの代わりにカスタムメッセージを渡す方法です。 「健康AZは」グロブに一致するように期待

例えば、私は次のデフォルトのアサーション失敗メッセージを取り除きたい

「健康A-ZZは、」(「健康A-ZZ」正規表現にグロブを変換していました。あり -

「健康A-ZZ」の期待値と一致していないメニュー項目のタイトルとして、それをフレーム見た実際の値が「健康AZ」

Question1です私は何をしたいのデフォルトのメッセージを上書きするか?質問2 - 可変パラメータをメッセージに渡して動的メッセージにすることはできますか?

サンプルコード:

try { 
    assertEquals("Health A-ZZ", selenium.getText("//div[@id='topnav']/ul/li[2]/a")); 
    logger.info("SUCCESS: Menu Item {} title verification Passed. EXPECTED : A-Z and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a")); 
} 

catch (AssertionError e) { 
    logger.error("FAILURE: Menu Item {} title verification Failed. EXPECTED : A-ZZ and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a")); 
} 

私は二回プリントアウトassertFailureメッセージが表示されます。..上記のcatchブロックでエラーメッセージが表示され、私は上記のような他の、デフォルトのJUnit assertfailreメッセージを持つワン取り除きたい

ありがとうございました。

よろしく、 プラカシュ

答えて

5

あなたはJUnitのアサート機能を使用することができます。 assertEquals(message、expected、actual)

これは、エラーが発生した場合にメッセージ文字列に指定されたメッセージを出力します。 "message"にString変数を渡すこともできます。

+0

ありがとうございます。私はドキュメントでこの機能を見たことがありました。しかし、私はどのように可変パラメータでメッセージを渡すかについては明確ではありませんでした。 – Prakash

+0

assertEquals( "期待値:" +期待値+ "実際と一致しません:+実際、予想される、実際) 私はそれを試してみるつもりです。 slf4jロギングAPIを使ってメッセンジャーをログすることはできますか? – Prakash

+0

私はこのアプローチを試みましたが、assertEquals関数呼び出しで与えられたメッセージは、アサートが失敗したときには表示されません。 – Prakash

関連する問題