Junit的使用入门,判断控制台输出是否与预期相同
2015-04-27 10:53
417 查看
Junit是一个强大的测试工具,可以用来写测试用例,相当于白盒测试,与maven搭配使用,可以使协同开发提高效率,测试人员将测试用例及单元测试编写在test包中,进行测试。
在我新建的maven项目中,main包中有两个类,分别是含有main()函数的App类,和含有Writer的javabean类,功能非常简单,Writer类的构造函数可以实现在控制台打印“Hello World”,在有main()函数的App类中实例化Writer,即可实现在控制台打印“Hello world”。
针对Writer类的Junit测试如下:
首先,新建WriterTest类,编写如下代码:
public class WriterTest extends TestCase {
public void testAdd(){
<pre name="code" class="java"> final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
Writer mywriter = new Writer(); assertEquals("Hello April!\n", outContent.toString()); } }
这段代码的精华在于
final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
这两行读取了控制台的输出,在断言部分只需要判断控制台的输出与我们的预期是否一致即可。
在AppTest中需要编写如下代码:
public class AppTest extends TestCase
{
public static Test suite() {
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite(WriterTest.class);
return suite;
}
public static void main(String args[]){
TestRunner.run(suite());
}
}
完成后,单击右键选择,run as Junit Test,即可看到测试结果,如图所示:
表明测试通过。
在我新建的maven项目中,main包中有两个类,分别是含有main()函数的App类,和含有Writer的javabean类,功能非常简单,Writer类的构造函数可以实现在控制台打印“Hello World”,在有main()函数的App类中实例化Writer,即可实现在控制台打印“Hello world”。
针对Writer类的Junit测试如下:
首先,新建WriterTest类,编写如下代码:
public class WriterTest extends TestCase {
public void testAdd(){
<pre name="code" class="java"> final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
Writer mywriter = new Writer(); assertEquals("Hello April!\n", outContent.toString()); } }
这段代码的精华在于
final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
这两行读取了控制台的输出,在断言部分只需要判断控制台的输出与我们的预期是否一致即可。
在AppTest中需要编写如下代码:
public class AppTest extends TestCase
{
public static Test suite() {
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite(WriterTest.class);
return suite;
}
public static void main(String args[]){
TestRunner.run(suite());
}
}
完成后,单击右键选择,run as Junit Test,即可看到测试结果,如图所示:
表明测试通过。
相关文章推荐
- 使用TextTest来做认定测试——本质是通过diff对比程序的运行log输出,来看测试结果和预期结果是否相同
- 使用junit Assert 断言来判断参数是否为空
- Linux shell脚本判断输入目录是否存在,并输出目录所在磁盘使用量
- 使用assertEquals()对控制台println()输出进行判断失败的原因及处理
- JQuery(4)---使用mousedown和mouseup简单判断鼠标按下与释放位置是否相同
- 判断两个数组中是否有相同的元素,有就输出“有”,没有就输出“没有”
- 关于使用EasyUI判断俩次密码是否相同 ValidateBox详解
- 判断两个数组是否有相同的元素?有输出“有”,没有输出“没有”
- 用C语言实现判断两个数组中是否有相同的元素,有就输出“有”,没有则输出“没有”
- 判断两个数组中是否有相同元素,有就输出有,没有就输出没有
- 判断两个数组中是否有相同的元素,有就输出“”有“”,没有就输出“”没有“”
- js使用数组判断提交数据是否存在相同数据
- 用指针判断是否两个数组是否有相同的数字,有的话输出相同数字
- 数组的创建/查找数组里面的内容/添加数组中元素/使用指定的字符串把数组链接起来/判断数组内是否有指定的数组元素/四种遍历进行输出数组中的元素有哪些
- 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)
- 控制台输入三条边长,判断是否能构成三角形。如果能构成,输出三角形的周长,并且告知该三角形是什么类型(锐角、直角、钝角),再判断下该三角形是 等腰、等边还是不等边三角形。
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。若是,则输出“YES”,不是则输出“NOT” (要求用条件表达式进行判断,不使用if语句)
- 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”?
- 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”?