解决报java.lang.AssertionError错误的问题
目录
- 报java.lang.AssertionError错误
- 在使用Assert.assertEquals时报一个错误
- 首先我们的明白Assert的用法
- java.lang.AssertionError: Expected:2 Actual:9
- 单元测试代码如下
报java.lang.AssertionError错误
在使用Assert.assertEquals时报一个错误
文章图片
首先我们的明白Assert的用法
assert
- 如果
为true,则程序继续执行。 - 如果为false,则程序抛出AssertionError,并终止执行
- 如果
为true,则程序继续执行。 - ?如果为false,则程序抛出java.lang.AssertionError,并输出<错误信息表达式>。
文章图片
进行的是判断两个Object类型的值,他们两个比较的是引用地址是否相等, 并没有对内容进行比较:
如果两者一致, 程序继续往下运行.
【解决报java.lang.AssertionError错误的问题】如果两者不一致, 中断测试方法, 抛出异常信息 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代码时遇到的
单元测试代码如下
@Testpublic void testFind() throws Exception {//构建测试数据//创建目标类的对象CategoryDaoImpl dao = new CategoryDaoImpl(); //调用对象的目标方法Listlist = dao.find(); int actual = list.size(); int expected = 2; //使用断言类的方法判断;比较实际和预计的结果Assert.assertEquals(actual, expected); }
如果你也报了如题的错误,
你看看你的数据库数据条数是不是和expected的2不一样
是不是错误里写的actual 的值,比如我的数据库就有9条
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 如何解决`E Qt JAVA(找不到Surface 1-通过意图恢复到Qt @ android应用程序时出错())
- [C++] 类与对象(中) 一篇带你解决运算符重载实例--日期类Date
- 如何解决PHP cURL警告(curl_set_opt_array():设置open_basedir时无法激活CURLOPT_FOLLOWLOCATION)
- 已解决–A project with an Output type of Class Library cannot be started directly
- 如何解决Windows的git(Powershell和GitHub应用程序)中的”文件名过长”错误
- 如何解决Windows中的cmd或node.js命令提示符问题(git未安装或未在PATH中)
- Zoho邮件在Hotmail和Outlook用户的垃圾邮件文件夹中结束(解决方案)
- 如何解决Magento 2 composer安装错误(” https://repo.magento.com/packages.json”的无效凭据)
- 解决方案错误(在Android SDK中找不到gradle包装器。可能需要更新你的Android SDK)
- 解决android的本地路径(content://)如果resolveLocalFileSystemURL不工作