使用assertEquals()对控制台println()输出进行判断失败的原因及处理
来源:互联网 发布:matlab软件官方下载 编辑:程序博客网 时间:2024/06/05 08:22
最近在学习中遇到个小问题,但很奇怪,通过IntelliJ IDEA的人性化功能帮我发现了原因。
主要想对比一段控制台的输出和预期是否相等。控制台输出的类代码如下,是一个使用println()进行输出的函数:
public class Chicken implements Animal { @Override public void say() { System.out.println("I'm a chicken!"); }}
测试类如下:
import org.junit.Rule;import org.junit.Test;import org.junit.contrib.java.lang.system.SystemOutRule;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ActiveProfiles;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertNotNull;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = AnimalConfig.class)@ActiveProfiles("chicken")public class Tester { @Rule /*SystemOutRule,该规则能够基于控制台的输出编写断言。*/ public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); @Autowired private Animal animal; @Test public void testAnimal() { assertNotNull(animal); animal.say(); assertEquals("I'm a chicken!\n", systemOutRule.getLog()); }}
注意最后那句就是对比的断言了。我在预期输出最后加了个\n,对应的就是println的那个回车了,但运行死活不对!看见IDEA的控制台输出如下:
于是点击“Click to see difference”去see一下difference:
嗯,得亏哥之前做过基于Linux的C开发,改成"\r\n"一试,果然好了!IDEA真心赞!
小小的记录而已……反正也没人看 -_-!!
阅读全文
1 0
- 使用assertEquals()对控制台println()输出进行判断失败的原因及处理
- 关于使用System.out.println()向控制台输出数据和使用out.println()向页面输出数据效率的问题
- 驱动程序 没在控制台输出原因 printk及控制台的日志级别
- 驱动程序 没在控制台输出原因 printk及控制台的日志级别
- 驱动程序 没在控制台输出原因 printk及控制台的日志级别
- 调用Weka API和使用GUI进行分类时,输出结果相反的原因及解决方法
- 关于格式化控制台输出,printf和println
- MFC中使用控制台进行数据输出
- 利用jquery对MVC输出的json对象进行处理,修改日期格式及取字符串的一部分
- 虚拟内存、CreateFileMapping使用及在WINCE失败的原因
- header location重定向语句对页面进行跳转失败的原因
- writeUTF输出字符串失败的原因分析
- 在使用ILSpy对c# dll进行反编译时遇到的问题及处理方式
- out.println()使用及FCKeditor编辑器的配置和使用
- 安卓System.out.println控制台输出方法
- Android System.out.println在控制台无输出
- Android System.out.println在控制台无输出
- 安卓System.out.println控制台输出方法
- UVA514 Rails (stack)
- 管理Cisco
- Git强制推送代码到多个远程仓库
- LaTex(PART IV) 各级标题
- PNP : Sudoku solver
- 使用assertEquals()对控制台println()输出进行判断失败的原因及处理
- Java连接数据库完整代码 查找和插入
- Two Sum
- Install oh my zsh on mac
- Redhat版本linux学习
- React Native 混合编程 之移植项目
- JDBC Transaction 示例
- 字符统计对比
- 线程局部存储TLS(thread local storage)