您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
《Junit in Action》学习笔记
作者:网络转载 发布时间:[ 2013/2/26 14:21:04 ] 推荐标签:

1.Junit概述:

    ①Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
    ②Junit测试是自动化测试的一种方式,它使得bug容易被控制。
    ③Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,可以用Junit进行自动测试了。
    ④由于Junit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败(状态条为:红色),修改实现代码,再运行测试,直到测试成功(状态条为:绿色)。以后对代码的修改和优化,运行测试成功,则修改成功。

2.Junit 相关使用

   ①概念:
    |- TestCase(测试用例)--扩展Junit的TestCase类的类。它以testXXX方法的形式包含一个或多个测试。一个testcase把具有公共行为的测试归入一组。

    |- TestSuite(测试集合)--组测试。一个test suite是吧多个相关测试归入一组的快捷方式。例如,如果没有为TestCase 定义一个test suite,那么Junit会自动提供一个test suite。包含TestCase中所有测试。

    |- TestRunner(测试运行器)--执行test suite的程序。Junit提供了几个test runner,可以用来执行你的测试。 没有TestRunner解开,只有一个所偶test runner都继承的BaseTestRunner. 因此,当我们编写TestRunner的时候,实际上指的是任何继承BaseTestRunner的test runner类。

    ②Junit成员共同产生测试结果:
        TestCase + TestSuite + BaseTestRunner =  TestResult

   ③JUnit基本框架的结构
       |- import声明引入必须的JUnit类
       |- 定义一个测试类从TestCase继承
       |- 必需一个调用super(String)的构造函数
       |- 测试类包含一些以test..开头的测试方法
       |- 每个方法包含一个或者多个断言语句
     当然还有一些其他的内容,但满足以上几条的已经是一个JUnit测试了

   ④JUnit的命名规则和习惯
       |- 如果有一个名为ClassA的被测试函数,那么测试类的名称是TestClassA
      |- 如果有一个名为methodA的被测试函数,那么测试函数的名称是testMethodA


   ⑤介绍Test Case、test suite、Test Runner常规使用: (使用的Eclipse自带的Junit)。
       |-Test Case
Java代码 复制代码

    import junit.framework.*;  //导入junit.jar包  
      /*TestXxx继承自TestCase(命名规范:一般在类名前加Test)*/ 
      public class TestXxx extends TestCase{     
     /*测试方法的具体实现(命名规范:以小写的testXxx形式。否则Junt不会自动识别该方法为测试方法)*/ 
     public void testXxx(){};   
      } 

[java] view plaincopy

    import junit.framework.*;  //导入junit.jar包 
      /*TestXxx继承自TestCase(命名规范:一般在类名前加Test)*/ 
      public class TestXxx extends TestCase{    
     /*测试方法的具体实现(命名规范:以小写的testXxx形式。否则Junt不会自动识别该方法为测试方法)*/ 
     public void testXxx(){};  
      } 


             
       |-test suite
Java代码 复制代码

    import junit.framework.Test;  
    public static Test suite(){  
       TestSuite suite = new TestSuite();   //实例化  
         suite.addTest(new MoneyTest("testXxx"));  //添加测试方法  
         suite.addTestSuite(TestMoney.class);  //添加整个测试到集合中  
     } 

[java] view plaincopy

    import junit.framework.Test; 
    public static Test suite(){ 
       TestSuite suite = new TestSuite();   //实例化 
         suite.addTest(new MoneyTest("testXxx"));  //添加测试方法 
         suite.addTestSuite(TestMoney.class);  //添加整个测试到集合中 
     } 


          
       |- Test Runner (junit.textui.TestRunner)
Java代码 复制代码

    public static void main(String args[]){  
      junit.textui.TestRunner.run(suite()); //将testsuite 执行。  
     } 

[java] view plaincopy

    public static void main(String args[]){ 
      junit.textui.TestRunner.run(suite()); //将testsuite 执行。 
     } 

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd