解决报java.lang.AssertionError错误的问题

2022-07-14,,,,

java.lang.assertionerror错误

在使用assert.assertequals时报一个错误

首先我们的明白assert的用法

assert <boolean表达式>

  • 如果<boolean表达式>为true,则程序继续执行。
  • 如果为false,则程序抛出assertionerror,并终止执行

assert <boolean表达式> : <错误信息表达式>

  • 如果<boolean表达式>为true,则程序继续执行。
  • ​如果为false,则程序抛出java.lang.assertionerror,并输出<错误信息表达式>。

ctrl点进assert.assertequals发现

进行的是判断两个object类型的值,他们两个比较的是引用地址是否相等, 并没有对内容进行比较:

如果两者一致, 程序继续往下运行.

如果两者不一致, 中断测试方法, 抛出异常信息 assertionfailederror

而我写的断言是这样的:

assert.assertequals(7, userlist.size());

错误中明显指出,excepted是7,actual是8,因此两个值不一致,报错误

因此把7改成8就行

assert.assertequals(8, userlist.size());

java.lang.assertionerror: expected:2 actual:9

我是在单元测试find的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);
    }

如果你也报了如题的错误,

你看看你的数据库数据条数是不是和expected的2不一样

是不是错误里写的actual 的值,比如我的数据库就有9条

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

《解决报java.lang.AssertionError错误的问题.doc》

下载本文的Word格式文档,以方便收藏与打印。