(二)测试驱动开发(tdd)学习笔记:工具,技术 junit

发表于:2007-10-15 18:18

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

 作者:未知    来源:网络转载

java 下面最常用的是junit ,

基本用法是

1、import junit 包

2、定义一个测试类,最好以test开头,以方便ide自动搜索测试,测试类继承自TestCase,然后在里面写自己的test 方法,测试代码主要是运行类的各种方法,并用assert判断是否与预期相同。核心的assert 方法有

assertTrue ,assertFalse,assertNull,assertNotNull,assertSame,assertNotSame,assertEquals,还有一个fail直接写fail(),就会提示测试失败。

   public class testMath  extends TestCase{

         public void testSum(){

              assertEquals("3加2应该等于5",5,math1.sum(3,2));

         }

}

3、如果测试类里面的每个测试都需要初始化某些资源,那么可以把初始化的代码放到测试类的初始化方法(setUp)里面,并在类的拆卸(tearDown)方法里面作善后工作。例如,在作数据库测试的时候,可以在(setUp)方法里面备份当前数据库,并把当前数据库里面的数据恢复为测试数据,并在(tearDown)方法里面将数据库恢复为当前数据。junit 会为每个测试方法运行一次(setUp)和(tearDown),以保证各个测试方法之间互不影响。

   public class testMath  extends TestCase{

        public void setUp(){

           初始化代码;

       }

       public void tearDown(){

          善后代码;

       }

        public void test1(){

              .......(测试代码1)

         }

       

        public void test2(){

              .......(测试代码2)

         }

       

        public void test3(){

              .......(测试代码3)

         }

}

在这个例子里面,(setUp)和(tearDown)会被执行三次。

关于testCase 的管理

       多个testCase可以被添加到一个testSuite里面,多个testSuite也可以被加到一个testSuite里面。

public class TestMySuit extends TestSuite{

     public TestMySuit(){

        super();

     }

     public static Test suite(){

           TestSuite suite = new TestSuite();

           suite.addTestSuite(myTest1.class);

            suite.addTestSuite(myTest2.class);

             return suite;

}

关于junit自己的扩展

1、ActiveTestSuite

     在 这个suite里面的每个测试会在独立的线程里面运行,有几个测试,就有几个线程。

2、ExceptionTestCase 作者不建议用这个,既然不建议用,我就没看了

3、testDecorator

    顾名思意,这个是对test进装饰的类,抄个书上的例子

  public class InstrumentedTest Extends TestDecorator{

       public instrumentedTest(Test arg0){

            super(arg0);

      }

       public void run(TestResult result){

            System.out.println("Starting "+ fTest.toString());

             basicRun(result);

       }

}

public class InstrumentedTest Tester extends TestCase{

     public void testMethod(){

     //...

     }

     public static Test suite(){

          TestSuite suite = new TestSuite();

          Test test = new InstrumentedTest Tester("testMethod");

          suite.addTest(new instrumentedTest(test));

           return suite;

         }

        public static.void main(String args[]){

             junit.textui.TestRunner.run(suite());

        }

}

4、RepeatedTest

public class RepeatedTest   Tester Extends TestCase{

    public void testMethod(){

    }

     public static void main(String args[]){

      Test test = new RepeatedTest Tester("testMethod");

       junit.textui.TestRunner.run(new RepeatedTest(test,10));

     }

}

5、TestSetup 这个和testCase 的setUp和tearDown类似,不过是用于testSuite。


 

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号