如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)
待测类(CreateString)如下:
public class CreateString {
public void createString() {
//Output the following string "1 2 3"
System.out.print("1 2 3\n");
//Output the following string "1 2 3"
System.out.print("1 "+"2 "+"3\n");
//Output the following string "1 2 3"
System.out.print(new String("1 2 3\n"));
//Output the following string "1 2 3"
System.out.print(new String("1 2 3\n"));
}
}
开始编写测试类(CreateStringTest)如下:
在CreateString.Java 文件上右键(或Ctrl+N),弹出下图:
选择 JUnit test case 或者 Test Suite,弹出下图:
编写如下测试类代码
import static org.junit.Assert.*; // Junit 提供断言 assert
import java.io.ByteArrayOutputStream; // 输出缓冲区
import java.io.PrintStream; // 打印输出流
import org.junit.Test; // 提供测试public class CreateStringTest {
// 做三件事情:定义打印输出流(PrintStream console)、输出字节流数组 bytes、新建一个待测对象createString
PrintStream console = null;
ByteArrayOutputStream bytes = null;
CreateString createString;@org.junit.Before // 预处理
public void setUp() throws Exception { createString = new CreateString(); bytes = new ByteArrayOutputStream();
console = System.out; System.setOut(new PrintStream(bytes)); } @org.junit.After // 后处理
public void tearDown() throws Exception { System.setOut(console);
} @org.junit.Test // 测试
public void testResult() throws Exception {
createString.createString(); // 调用方法createString() 输出一系列字符串到 (输出字节流数组)bytes String s = new String("1 2 3\n"+"1 2 3\n"+"1 2 3\n"+"1 2 3\n"); // 作为 Oracle
assertEquals(s, bytes.toString()); // 比较 Oracle 和 实际输出的值 bytes, PS 需要将数组对象 bytes 转换为字符串。
}
}
如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)的更多相关文章
- 使用junit进行最简单的单元测试
使用junit进行最简单的单元测试 使用工具: jdk IDEA Maven 第一步 创建一个Maven项目 第二步 导入junit依赖 <dependency> <groupId& ...
- 利用ANTLR4实现一个简单的四则运算计算器
利用ANTLR4实现一个简单的四则运算计算器 ANTLR4介绍 ANTLR能够自动地帮助你完成词法分析和语法分析的工作, 免去了手写去写词法分析器和语法分析器的麻烦 它是基于LL(k)的, 以递归下降 ...
- 利用 nodeJS 搭建一个简单的Web服务器(转)
下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子.如果需要深入理解Unit Test的原理与艺术,请参考<The art o ...
- 利用VS2008发布一个简单的webservice
一个开发好的webservice,怎样发布出去,供其他电脑访问呢? 本文将介绍如何发布一个简单的webservice,其中的内容都是在网上查看别人文章,自己仿照着做了一遍,因此,难免会发生错误,如果发 ...
- 利用java实现一个简单的远程监控程序
一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端, ...
- 利用jmeter做一个简单的性能测试并进行参数化设置
1.新增一个线程组,并在下面添加基本原件,包括:监听器.http请求默认值和一个事务控制器 在http请求默认值中填写 ip 地址和端口号,协议类型默认为http 2.添加代理服务器,以便之后进行录制 ...
- Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)
上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页 了解了LigerUI 中Grid的基本用法 现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...
- 利用OD破解一个简单的C语言程序
最近在学习汇编(看的是王爽老师的<汇编语言(第三版)>),然后想尝试使用OD(Ollydbg)软件破解一个简单的C语言程序练练手. 环境: C语言编译环境:VC++6.0 系统:在Wind ...
随机推荐
- VS2010正则批量替换set_和get_
批量替换set_: daohang.set_ChannelName(rowArray[0]["ChannelName"].ToString()); daohang.set_Chan ...
- 【原创】DOTNET动态调试破解Spoon,及MSI安装包文件替换技术
提到Spoon可能大家还会感到陌生,但是如果提及XenoCode那么研究过DOTNET的人应该都知道吧.Spoon的前身就是XenoCode,虽然没有了PostBuild这个混淆软件,但是虚拟化技术仍 ...
- include 指令和 include 动作引入 jsp 页面时中文乱码
include指令:<%@ include file="new.jsp" %> include动作:<jsp:include page="new.jsp ...
- Axure学习(一)
了解Axure目前的一些评价信息以及可以学习Axure的网址.
- springboot server.address 配置问题
1. server.address 为对应机器ip地址时 ,如 18.10.x.x 此时访问该服务只能使用 ip 访问 . 2. 配置为 127.0.0.1 时 可以使用 localhost 和 ...
- AJAX-DOM事件
1.DOM事件 1.select的onchange事件 当选项框中的内容发生改变时需要出发的事件.2.Ajax 1.名词解释 1.同步 在一个任务进行中,不能开启其它的任务. 同步访问:浏览器在向服务 ...
- vue导航栏实时获取URL设置当前样式,刷新也存在!
很low 别喷, template代码: <div class="tab-itme"> <ul @click="clickit()"> ...
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) D. Labyrinth(重识搜索)
https://codeforces.com/contest/1064/problem/D 题意 给你一个有障碍的图,限制你向左向右走的次数,问你可以到达格子的个数 思路 可以定义状态为vi[x][y ...
- ASP.NET WebApi 基于分布式Session方式实现Token签名认证(发布版)
一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...
- windows10; ERROR 1010 (HY000): Error dropping database (can't rmdir './test/', errno: 17);默认数据库位置查找
1.想要导入数据到一个数据库中,但是,无法导入,同时也无法删除数据库重新建立-----------------------------备份当前数据库 2,分析:很多资料显示说数据库下有异常文件,于是就 ...