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

java 下面最常用的是junit (http://www.junit.org/),

基本用法是

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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值