`
yanaicheng
  • 浏览: 4759 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

junit使用小结

阅读更多
junit使用小结
在使用XP进行开发的过程,unit test是必不可少的环节。作为unit test,junit是首选的工具。本文从使用目的、如何使用、以及使用中需要考虑的问题,简略描述了junit的基本用法。 使用目的 junit是java中书写unit test的framework,目前一些流行的unit test工具大都都是在junit上扩展而来的。目前它的版本是junit3.8.1,可以从www.junit.org上下载。 用法 1. 基本使用步骤,Junit的使用非常简单,它的基本使用步骤: - 创建,从junit.framework.TestCase派生unit test需要的test case - 书写测试方法,提供类似于如下函数签名的测试方法: public void testXXXXX(); - 编译,书写完test case后,编译所写的test case类 - 运行,启动junit test runner,来运行这个test case。 Junit提供了2个基本的test runner:字符界面和图形界面。启动命令分别如下: a 图形界面: java junit.swingui.TestRunner XXXXX b 字符界面: java junit.textui.TestRunner XXXXX 2. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ public void testMethod1(){ assertTrue( true); } } 3. setUp与tearDown,这两个函数是junit framework中提供初始化和反初始化每个测试方法的。setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。它们与测试方法的关系可以描述如下: 测试开始 -> setUp -> testXXXX -> tearDown ->测试结束 4. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ assertTrue( true); } potected void tearDown(){ //撤销初始化…… } } 5. 区分fail、exception。 - fail,期望出现的错误。产生原因:assert函数出错(如assertFalse(true));fail函数产生(如fail(……))。 - exception,不期望出现的错误,属于unit test程序运行时抛出的异常。它和普通代码运行过程中抛出的runtime异常属于一种类型。 对于assert、fail等函数请参见junit的javadoc。 6. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ …… try{ boolean b= …… assertTrue( b); throw new Exception( “This is a test.”); fail( “Unable point.”); //不可能到达 }catch(Exception e){ fail( “Yes, I catch u”); //应该到达点 } …… } potected void tearDown(){ //撤销初始化…… } } 7. 组装TestSuite,运行更多的test。在junit中,Test、TestCase和TestSuite三者组成了composiste pattern。通过组装自己的TestSuite,可以完成对添加到这个TestSuite中的所有的TestCase的调用。而且这些定义的TestSuite还可以组装成更大的TestSuite,这样同时也方便了对于不断增加的TestCase的管理和维护。 它的另一个好处就是,可以从这个TestCase树的任意一个节点(TestSuite或TestCase)开始调用,来完成这个节点以下的所有TestCase的调用。提高了unit test的灵活性。 8. 使用例子: import junit.framework.Test; import junit.framework.TestSuite; public class TestAll{ public class TestAll{ //定义一个suite,对于junit的作用可以视为类似于java应用程序的main。 public static Test suite(){ TestSuite suite = new TestSuite("Running all tests."); suite.addTestSuite( TestCase1.class); suite.addTestSuite( TestCase2.class); return suite; } } 运行同运行单独的一个TestCase是一样的,参见step 1 “运行”。 9. 使用Ant junit task。我们除了使用java来直接运行junit之外,我们还可以使用junit提供的junit task与ant结合来运行。涉及的几个主要的ant task如下: - ,定义一个junit task - ,位于中,运行多个TestCase - ,位于中,运行单个TestCase - ,位于中,定义一个测试结果输出格式 - ,定义一个junitreport task - ,位于中,输出一个junit report 具体的语法请参见相关文档。 10. 使用例子: 检查表 junit的使用并不很难,然而要书写一个好的TestCase却并非易事。一个不好的TestCase往往是既浪费了时间,也起不了实际的作用。相反,一个好的TestCase,不仅可以很好的指出代码中存在的问题,而且也可以作为代码更准确的文档,同时还在持续集成的过程中起非常重要的作用。在此给出书写TestCase时需要注意的几点: - 测试的独立性:一次只测试一个对象,方便定位出错的位置。这有2层意思:一个TestCase,只测试一个对象;一个TestMethod,只测试这个对象中的一个方法。 - 给测试方法一个合适的名字。 - 在assert函数中给出失败的原因,如:assertTrue( “… should be true”, ……),方便查错。在这个例子中,如果无法通过assertTrue,那么给出的消息将被显示。在junit中每个assert函数都有第一个参数是出错时显示消息的函数原型。 - 测试所有可能引起失败的地方,如:一个类中频繁改动的函数。对于那些仅仅只含有getter/setter的类,如果是由IDE(如Eclipse)产生的,则可不测;如果是人工写,那么最好测试一下。 - 在setUp和tearDown中的代码不应该是与测试方法相关的,而应该是全局相关的。如针对与测试方法A和B,在setUp和tearDown中的代码应该是A和B都需要的代码。 - 测试代码的组织:相同的包,不同的目录。这样,测试代码可以访问被测试类的protected变量/方法,方便测试代码的编写。放在不同的目录,则方便了测试代码的管理以及代码的打包和发布。一个例子如下: src <=源代码根目录 |---com |---mod1 |---class1 junit <=测试代码根目录 |---com |---mod1 |---class1 http://www.dvbbs.net/tech/program/2006042861394.asp
分享到:
评论

相关推荐

    junit总结使用例子

    junit总结使用例子junit总结使用例子junit总结使用例子

    Spring Test 整合 JUnit 4 使用总结.rar

    Spring Test 整合 JUnit 4 使用总结.rar

    junit 单元测试

    junit使用总结的资料,很适合想了解与使用junit的学习者 version: junit 4与jdk 1.5或以上版本.

    JUnit讲课文档(新手必看)

    自己搜集和总结的,比较适合新手学习,涉及JUnit3.8和JUnit4.x有区别的地方

    Junit4测试总结

    NULL 博文链接:https://jisonami.iteye.com/blog/2202500

    junit 单元测试 实验 报告 大全

    使用JUnit 对下列选择排序法进行测试。 public void select_sort (int a[]) { 1 int i, j, k, t, n; 2 n = a.length; 3 for (i = 0; i ; i++) { 4 k = i; 5 for (j = i + 1; j ; j++) { 6 if (a [j] [k...

    Junit入门培训资料(断言相关)

    Junit入门培训资料(断言相关),自己总结

    java质检工具(FindBugs、CheckStyle、Junit、Jmeter、Apifox)安装使用总结

    java质检工具(FindBugs、CheckStyle、Junit、Jmeter、Apifox)安装使用总结

    学习JUnit4过程中的总结

    NULL 博文链接:https://hucj.iteye.com/blog/2190715

    单元测试利器JUnit4

    本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...

    使用JUnit对规则进行单元测试

    火龙果软件工程技术中心 本文内容包括:引言编写Mock类将测试数据保存到配置文件中编写SettersMap类编写可复用的TestCase类用TestSuite组织测试用例总结下载参考资料“规则”(Rule)在程序中有广泛的应用,本文将...

    分析JUnit框架源代码

    本文内容包括:概述Junit简介一个简单的JUnit程序实例JUnit源代码分析总结参考资料本文细致地描述了JUnit的代码实现,在展示代码流程UML图的基础上,详细分析JUnit的内部实现代码的功能与机制,并在涉及相关设计模式...

    junit总结

    NULL 博文链接:https://ihenu.iteye.com/blog/2075490

    Junit4Demo:Junit4 演示

    junit4 使用总结 @Test @Test(timeout=毫秒),@Test(expected=异常类) @Ignore @RunWith @BeforeCalss @AfterClass @Before @After 测试套件@RunWith(Suite.class) 参数化设置@RunWith(Parameterized.class)

    SpringBoot实战:整合jUnit测试框架

    开发项目单元测试必不可少,而jUnit也是java中非常优秀的测试框架,现在简单实战总结一下SpringBoot如何整合jUnit测试框架。 二、添加依赖 在SpringBoot中使用jUnit单元测试前,需要先添加如下maven依赖,其中 test ...

    Spring in Action(第二版 中文高清版).part2

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结

    Spring in Action(第二版 中文高清版).part1

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结

Global site tag (gtag.js) - Google Analytics