概述
背景
在进行单元测试时,被测试的业务代码没有明确的return类型,但是一般的执行记录都会写入logger中,并在控制台输出。普通的断言无法覆盖这种场景,修改代码只能短时解决问题,每次更新都需要再次改代码。因此需要一种方法能够检测控制台的输出,并对输出进行断言。
解决方案一
1、把标准输出定向至ByteArrayOutputStream中去
2、对其内容进行断言
3、因为其内容较多,使用assertThat方法的containsString进行部分匹配。
注:
· 使用断言必须引用import static org.junit.Assert.*;
· 使用containsString必须引用import static org.hamcrest.Matchers.containsString;
解决方案二
使用System Rules,这种方法更加灵活。
注:JUnit本身的包里没有SystemOutRule,需要把jar包加入到buildpath中。
2、实际代码如下:
最后
以上就是花痴蜡烛为你收集整理的覆盖写入的方法_JUnit断言检测控制台输出的方法的全部内容,希望文章能够帮你解决覆盖写入的方法_JUnit断言检测控制台输出的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复