Junit源码解析总结

发表于:2016-3-10 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:LinkinPark    来源:51Testing软件测试网采编

  前面的博客我们也已经整理到了,我们使用junit38,在写测试类的时候我们的测试类必须继承TestCase。这个所有测试类的父类在junit.framework包下面。
  前面我们的整理都是说直接在IDE中直接运行测试类,右击然后run as junit。当然我们还可以自己写main方法来运行测试,其实都一样。
  OK,现在我们来写一个例子,直接运行测试类的main方法来跑测试。代码如下:
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
/**
* @创建作者: LinkinPark
* @创建时间: 2016年2月4日
* @功能描述: 写一个测试类,用main方法来驱动测试。
*/
public class LinkinTest2 extends TestCase
{
public void test1()
{
Assert.assertEquals("1", "1");
}
/**
* @创建时间: 2016年2月4日
* @相关参数: @param args
* @功能描述: 调用TestRunner来run测试。
*/
public static void main(String[] args)
{
TestRunner.run(LinkinTest2.class);
}
}
  前面的3篇博客,我已经认真的整理过了junit测试的3个步骤,这里做一个总结。
  我们来自己写的测试类上的一个测试方法打一个断点,然后看下eclipse中junit方法调用的情况。
  OK,上面的2张图很直接了说明了测试开始到测试方法真正被执行的所有的过程,我在这里也不做赘述了。之后的结果收集,无疑就是在每个测试类中传递一个TestResult类,通过printerWriter来打印日志而已,这里也不在赘述了。
  在前面的演示junit源码过程中,我自己也修改了好多的控制台输出。最后这里写2个测试例子,来一起看下控制台的输出,整体回顾下junit的整个测试过程好了。
  2个测试类代码如下:
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
public class LinkinTest1 extends TestCase
{
public LinkinTest1(String methodName)
{
super(methodName);
}
public void setUp()
{
System.out.println("这里是自己定义的setUp()");
}
public void tearDown()
{
System.out.println("这里是自己定义的tearDown()");
}
public void testLinkin4Normal()
{
System.out.println("======>开始执行被测试代码====");
final String str = "林肯:这里是自己的被测试的正确代码";
System.out.println(str);
System.out.println("======>结束执行被测试代码====");
Assert.assertEquals(str, str);
}
public void testLinkin8Error()
{
System.out.println("======>开始执行被测试代码====");
final String str = "林肯:这里是自己的被测试的错误代码";
System.out.println(str);
System.out.println("======>结束执行被测试代码====");
Assert.assertEquals("这里是我期望的错误逻辑输出", str);
}
}
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
public class LinkinTest1 extends TestCase
{
public LinkinTest1(String methodName)
{
super(methodName);
}
public void testLinkin()
{
Assert.assertTrue(true);
}
}
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.Test;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.commons.framework.TestSuite;
public class LinkinTestAll extends TestCase
{
public static Test suite()
{
TestSuite suite = new TestSuite().addTestSuite(LinkinTest.class);
return suite.addTest(new LinkinTest1("testLinkin"));
}
public static void main(String args[])
{
TestRunner.run(suite());
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号