当前位置: 首页 > 面试题库 >

测试写入Java OutputStream的内容

赵晟睿
2023-03-14
问题内容

我将为直接输出到OutputStream的XML解析Java类编写junit测试。例如,xmlWriter.writeString("foo");将产生类似于<aTag>foo</aTag>写入XmlWriter实例内部的输出流的内容。问题是如何测试这种行为。一种解决方案当然是让OutputStream成为FileOutputStream,然后通过打开写入的文件来读取结果,但这不是很好。


问题答案:

使用ByteArrayOutputStream,然后使用toByteArray()获取数据。这不会测试它
如何 写入流(一次写入一个字节或作为一个大缓冲区),但是通常您无论如何都不在乎。



 类似资料:
  • 问题内容: 假设我有一个简单的应用程序,可以从stdin读取行并将其回显到stdout。例如: 我想编写一个测试案例,该案例写入stdin,然后将输出与输入进行比较。例如: 跑步给我以下内容: 我显然在这里做错了什么。我应该如何测试这种类型的代码? 问题答案: 这是一个写入stdin并从stdout读取的示例。请注意,它不起作用,因为输出首先包含“>”。不过,您可以对其进行修改以适合您的需求。

  • 测试用来验证非测试的代码是否按照期望的方式运行的 Rust 函数。测试函数体通常执行如下三种操作: 设置任何所需的数据或状态 运行需要测试的代码 断言其结果是我们所期望的 让我们看看 Rust 提供的专门用来编写测试的功能:test 属性、一些宏和 should_panic 属性。 作为最简单例子,Rust 中的测试就是一个带有 test 属性注解的函数。属性(attribute)是关于 Rust

  • 如果现有的特征测试不能完成你所需要的工作,你就必须编写一个新的。这些宏是创建模块。它们为其它宏提供了检查各种 特征是否存在并且报告结果的方式。 本章包括一些建议和一些关于现有的测试的为什么要那样编写的原因。通过阅读现有的测试,你还可以学到许多关于编写 Autoconf测试的方法。如果在一个或多个Autoconf测试中出现了错误,这些信息可以帮助你理解它们意味着什么,这有助 于你找到最佳的解决问题的

  • 由于你写的大部分 Redux 代码是函数,而且其中大部分是纯函数,所以很好测,不需要模拟。 准备工作 我们推荐使用 Jest) 作为测试引擎,需要注意的是 Jest 运行在 Node 环境中,因此你不能访问 DOM。 npm install --save-dev jest 如果想要和 Babel 一起使用,还需要安装 babel-jest npm install --save-dev babel-

  • 假设我们编写了一个hello.js,并且输出一个简单的求和函数: // hello.js module.exports = function (...rest) { var sum = 0; for (let n of rest) { sum += n; } return sum; }; 这个函数非常简单,就是对输入的任意参数求和并返回结果。 如

  • 我有一个Python脚本,它运行查询并将输出打印到文本文件。当我Dockerize它时,不会创建输出文件。Dockerfile如下: <代码>证书。txt是我需要添加输出的文件。这在脚本中引用。如何将其添加到Dockerfile?