Report java.lang.AssertionError
Assert.assertEquals 使用時のエラーを報告
##まず、Assert の使用法を理解する必要があります
assert
- がtrueの場合、プログラムは実行を継続します。
- false の場合、プログラムは AssertionError をスローして実行を終了します
assert : < ;エラー メッセージ式>
- が true の場合、プログラムは実行を続行します。
- false の場合、プログラムは java.lang.AssertionError をスローし、 を出力します。
Ctrl キーを押しながら Assert.assertEquals をクリックすると、
が 2 つのオブジェクト タイプの値を判断して比較するために使用されていることがわかります。参照アドレスが等しいかどうかであり、内容は比較されません。
2 つが一致する場合、プログラムは実行を継続します。
2 つが一致しない場合、テスト メソッドは実行されます。は中断され、例外メッセージ AssertionFailedError がスローされます。
私が書いたアサーションは次のようなものです:
Assert.assertEquals(7, userList.size());
ログイン後にコピー
エラーの中で、Excepted が 7 で、actual が 8 であることが明確に指摘されています。 2 つの値が矛盾しており、エラーが報告されます
したがって、7 を 8 に変更するだけです
Assert.assertEquals(8, userList.size());
ログイン後にコピー
java.lang.AssertionError: Expected:2 Actual:9
私は遭遇しましたこれは、単体テストで jdbc コードが見つかりました。
単体テスト コードは次のとおりです。
@Test
public void testFind() throws Exception {
//构建测试数据
//创建目标类的对象
CategoryDaoImpl dao = new CategoryDaoImpl();
//调用对象的目标方法
List<Category> list = dao.find();
int actual = list.size();
int expected = 2;
//使用断言类的方法判断;比较实际和预计的结果
Assert.assertEquals(actual, expected);
}
ログイン後にコピー
同じエラーが報告された場合は、
データベースは予期したものと異なります 2
はい、エラーに書き込まれた実際の値ではありません。たとえば、データベースには 9 つのエントリがあります
以上がjava.lang.AssertionError エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。