junit拦截控制台输出,用于测试断言验证System.out.println的输出为预期输出。注意不同颜色标注的代码。
public class TestSystemTool {
PrintStream console = null; // 声明(为null):输出流 (字符设备) console
ByteArrayOutputStream bytes = null; // 声明(为null):bytes 用于缓存console 重定向过来的字符流
@org.junit.Before
public void setUp() throws Exception {
//System.out.println("start");
bytes = new ByteArrayOutputStream(); // 分配空间
console = System.out; // 获取System.out 输出流的句柄
System.setOut(new PrintStream(bytes)); // 将原本输出到控制台Console的字符流 重定向 到 bytes
}
@org.junit.After
public void tearDown() throws Exception {
System.setOut(console);
//System.out.println("end");
}
@Test
public void testConsoleOut(){
System.out.println("输出文本。");
String s = new String("输出文本。\r\n"); // 注意:控制台的换行,Windows用 '\r\n' 表示,如果其他操作系统有可能是'\n',这是因为每个操作系统对换行有不同的理解和实现。
assertEquals(s, bytes.toString()); // bytes.toString() 作用是将 bytes内容 转换为字符流
bytes.reset(); //同个方法中有多个System.out.println输出的话,要清除bytes中之前的缓存内容,否则输出叠加。
System.out.println("输出文本。");
assertEquals(s, bytes.toString()); // bytes.toString() 作用是将 bytes内容 转换为字符流
}
}
分享到:
相关推荐
### 单元测试JUnit常用断言方法 #### JUnit简介 JUnit是一款用于Java语言的单元测试框架,由Kent Beck与Erich Gamma共同开发维护。它主要用于编写和运行可重复的测试案例,帮助开发者确保代码质量并及时发现潜在...
### JUnit常用断言方法详解 #### 一、概述 JUnit 是一个用于编写和运行可重复测试的框架,主要用于Java程序的单元测试。在进行单元测试时,我们经常需要使用到断言方法来验证被测代码的行为是否符合预期。本文将...
在实际编程中,这些断言函数可以帮助开发者编写出详细的测试用例,确保每个方法或功能的输出都符合预期。例如,你可能需要写一个测试方法去验证计算器正确地打开并计算两个整数的乘积,使用assertEquals来检查计算...
Java中的JUnit是一个流行的单元测试框架,它为开发者提供了丰富的断言函数来验证程序代码的行为是否符合预期。在联想的这次培训中,主要讲解了JUnit中的一些核心断言函数,包括`assertEquals`、`assertTrue`、`...
JUnit断言的替代方案,可为您的测试提供更深入的日志描述 目录 用例 Visible Assertions被设计用来代替标准的JUnit Assert类,从而提供了许多核心assert*方法的实现。 每个方法都带有一个附加参数,开发人员可以使用...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的功能正确性。在软件开发过程中,单元测试是至关重要的,因为它们可以帮助发现早期错误,提高代码质量,并简化...
`assertEquals` 是 JUnit 中最常用的断言之一,用于比较期望值和实际值是否相等。它有两种主要的形式: - **函数原型1**:`assertEquals([String message], expected, actual)` - **参数说明**: - `message`:可...
然而,对于返回类型为 `void` 的方法,由于其没有显式的返回值,传统的 Junit 断言方法(如 `assertEquals`)无法直接应用于这类方法的测试。本文将详细介绍如何使用 Junit 测试 `void` 类型的方法,并提供一个具体...
此脚本为 Java 中 JSON 对象模型的 JUnit 测试编写了超级简单的断言 用它 特征 基本相等检查 能够将键名引用为lowerCamelCase(如果您使用来自GSON的@SerializedName(…)的东西 贡献 叉 做出改变 测试您的更改 提交...
1. **断言(Assert)**:用于验证函数的实际输出与预期输出是否一致,是JUnit中最核心的部分,能够帮助开发者快速定位问题所在。 2. **共享测试数据的工具**:允许在多个测试用例间共享相同的初始化数据或状态,减少...
JUnit 是Java编程语言中广泛使用的单元测试框架,它提供了一系列的断言方法来帮助开发者验证代码的行为。这些断言方法允许我们检查程序执行的结果是否符合预期,从而找出潜在的错误。以下是对标题和描述中提到的...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了编写和运行可重复、可靠的测试用例的工具。这个"Junit4的小实例程序"包含了一些基础的JUnit4测试示例,帮助初学者理解和掌握如何在实际项目中...
go-junit-report, 将测试输出转换为 junit go-junit-report将 go test 输出转换为一个适合于期望使用junit报表的应用程序( 比如 。 ( 译): ) 。 安装需要版本 1.1或者更高版本。 使用 go get 命令安装或者更新:go g
9. **测试监听器**:可以通过实现JUnit的`TestListener`接口或者使用JUnit5的`Extension`机制,自定义测试的监听行为,如测试结果的定制输出。 10. **测试覆盖率**:JUnit可以与其他工具(如JaCoCo或Cobertura)...
本资源将指导读者如何在myEclipse中使用Junit,包括准备工作、使用Junit进行测试、Junit断言方法、Junit 4新特性等方面的内容。 一、准备工作 在myEclipse中使用Junit需要进行一些准备工作。首先,需要导入Junit的...
除了基本的断言外,JUnit 5还提供了丰富的assertion库,如`Assertions`类中的静态方法,可以进行更复杂的比较和异常验证。 此外,JUnit 5支持异步测试,通过`@Test`注解的`async()`属性和`awaitility`库,可以方便...
- 控制台输出应该清晰明了,方便用户理解程序状态和操作结果。 3. **CRUD操作**: - **创建(Create)**: 添加新联系人时,程序会提示用户输入联系人信息,然后创建一个新的`Contact`对象并添加到`AddressBook`中...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的正确性和稳定性。JUnit3.8.1是该框架的一个较早版本,尽管现在已经有更新的版本(如JUnit5),但了解其基本...
测试方法中,JUnit4提供了一些断言方法,如`assertEquals`、`assertTrue`等,用于检查预期结果与实际结果的相符性。例如,`assertEquals(expected, actual)`用于验证两个对象或值是否相等,`assertTrue(condition)`...