本人个人博客网站,欢迎访问:学教府

  1. 在controller中的方法如下:
/*** 处理注册的提交信息* @param spitter* @return*/@RequestMapping(value = "/register", method = RequestMethod.POST)public String processRegister(Spitter spitter){spitterRepository.save(spitter);//跳转到个人信息页面return "redirect:/spitter/" + spitter.getUsername();}
  1. 在Junit类中的测试方法为:
    @Testpublic void shouldProcessRegistration() throws Exception {SpitterRepository mockRepository = mock(SpitterRepository.class);Spitter unsaved = new Spitter("xu", "jiafei", "dale", "123456");Spitter saved = new Spitter(10L,"xu", "jiafei", "dale", "123456");//当调用保存方法时,返回指定的数据when(mockRepository.save(unsaved)).thenReturn(saved);SpitterController spitterController = new SpitterController(mockRepository);MockMvc mockMvc = standaloneSetup(spitterController).build();mockMvc.perform(post("/spitter/register").param("firstName","xu").param("lastName","jiafei").param("username","dale").param("password","123456")).andExpect(redirectedUrl("/spitter/dale"));//此处若不重写Spitter的Equals方法和hashCode方法时将会报错,说两次的参数传递不一样verify(mockRepository,atLeastOnce()).save(unsaved);}
  1. 如果在没有重写实体类Spitter的Equals方法和hashCode方法时, verify(mockRepository,atLeastOnce()).save(unsaved)方法会报错:
Argument(s) are different! Wanted:
spitterRepository.save(Spitter{id=null, firstName='xu', lastName='jiafei', username='dale', password='123456'}
);
-> at test.SpitterControllerTest.shouldProcessRegistration(SpitterControllerTest.java:57)
Actual invocation has different arguments:
spitterRepository.save(Spitter{id=null, firstName='xu', lastName='jiafei', username='dale', password='123456'}
);
-> at com.spittr.controller.SpitterController.processRegister(SpitterController.java:51)

结论:其实该验证方法的两次参数内容是一样的,之所以会报错是因为方法在比较时是使用的Equals方法和hashCode方法,而如果没重写这两个方法则使用的是Object的方法(判断是否为同一个对象)。如果要正确验证,需要重写这两个方法

Junit报错:Argument(s) are different! Wanted:相关推荐

  1. JUnit报错:Java.lang.Exception: No runnable methods解决方案

    JUnit报错:Java.lang.Exception: No runnable methods解决方案 参考文章: (1)JUnit报错:Java.lang.Exception: No runnab ...

  2. java argument type mismatch_解决mybatisplus插入报错argument type mismatch的问题

    今天使用argument type mismatch发现插入的时候报错 java.lang.IllegalArgumentException: argument type mismatch 从错误中看 ...

  3. 解决JUnit报错 java.lang.ExceptionNo tests found matching方法

    问题截图 可能原因 忘记写@Test,导入相关的包 不是 public,参数,返回值,修饰符的错误. spring 包与 junit 的包的不兼容(springBoot项目直接忽略这一点) 没有保存报 ...

  4. 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题

    今天是用JUnit测试一段代码,报错method initializationerror not found::出现如下问题: 双击这个就显示出现如下的错误: 查询网上,说是junit版本的问题: 那 ...

  5. mybatis报错:argument type mismatch

    完整报错 当出现这个错误的时候先检查数据类型是否匹配,如果没问题的话往下看 nested exception is org.apache.ibatis.reflection.ReflectionExc ...

  6. mybatisplus插入报错argument type mismatch

    今天使用argument type mismatch发现插入的时候报错java.lang.IllegalArgumentException: argument type mismatch. 从错误中看 ...

  7. Nodejs: Buffer报错argument must be an Array of Buffer or Uint8Array instances

    最近项目有个需求需要在和第三方API接口进行交互时,在JSON字符串最前面加上16个字节的签名字节,为了简化问题忽略JSON以及16个字节的具体取值. 错误代码: buff = Buffer.from ...

  8. TASM报错argument needs type override的解决办法

    参考博文 16位汇编编译报错和解决办法 https://blog.csdn.net/HGGshiwo/article/details/105464296 错误语句 cmp [bx], 8,不知道是1b ...

  9. 粗暴的rm rf,报错Argument list too long

    今天有遇到一个问题,需要删除某目录下堆积的大量的无用文件. 自信的进入目录,敲打进了 rm -rf * 自信的等待结果的时候,报错了 Error – /bin/rm: Argument list to ...

最新文章

  1. 盖茨基金会:如何使用Python拯救生命
  2. 强烈推荐8个值得下载的神仙软件,每一个都让人惊喜
  3. spring in action 4 第5章
  4. linux uname 命令详解
  5. js弹性运动滑动的菜单
  6. kylin分析引擎:运行原理、维度和Cube等名词解释、核心算法
  7. 中缀表达式计算、后缀表达式计算、中缀转后缀
  8. 《弗洛伊德及其后继者》读书笔记(part1)--西格蒙德·弗洛伊德与经典精神分析传统
  9. 583. 两个字符串的删除操作
  10. 2011年计算机一级考试题,2011年计算机一级考试模拟试题及参考答案(1)
  11. php 可编辑菜单,菜单的添加编辑
  12. 【编程题】判断一个整数对应的二进制数是否是回文
  13. 服务器硬件工程师从入门到精通_硬件工程师必阅--如何“0基础”从入门到精通?(附CAD使用指南)...
  14. 微信小程序云开发教程-WXML入门-条件渲染
  15. ffplay播放器原理剖析
  16. [日志]中国十大名花
  17. EFM32 LG232系列单片机干货之LEUART
  18. python在tk界面播放本地视频_如何使用python3在tkinter窗口中插入视频播放器?
  19. 控制进度-监控管理过程组
  20. python 热度图_keras CNN卷积核可视化,热度图教程

热门文章

  1. CSAPP 第三版6.11练习题
  2. 引入第三方图标库,并在前台罗列图标
  3. ArcGIS二次开发基础教程(10):三维分析
  4. 市场调研-全球与中国云文档管理软件市场现状及未来发展趋势
  5. 计算机应用基础wOrd教学目标,计算机应用基础教案说课.doc
  6. Steam热门游戏《帝国神话》分享:如何用UE4打造大型开放世界生存沙盒网游?
  7. autoit 下载图片验证码
  8. 表格插件vxe-table
  9. Java 北大青鸟 第一学期 第六章 循环结构(二) 上级练习+课后作业
  10. 推荐一款PC端的远程软件-Remote Utilities