人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。 北京安全测试精英QQ群:164265622 北京白盒测试精英QQ群:164265999 北京性能测试精英QQ群:164266156 北京自动化测试精英群:212723528 北京软件测试精英QQ群:86920845

junit学习笔记

上一篇 / 下一篇  2011-11-28 17:23:31 / 个人分类:单元测试

Eclispe

需求:构建账号

建项目:file->new javaproject -> project :learnjava-> folder : d:\work\learnjava

PACKAGE: NEW PACKAGE->com.w51testing.paracise

CLASS: NEW CLASS->Account

创建junit 3.8 test case的捷径

    File->new junit test cae->3.8->setup->被测的类-》被测单元

创建Junit 3.8 test suite的捷径

    FILE ->NEW OTHER->JAVA->JUNIT->TEST SUITE

 

测试原则

1.      测试代码和源代码要分离

Src (源代码目录)

Test (测试代码目录)

2.      测试包和源代码包要同名(pacakage同名)

避免import源代码包语句

3. 测试类的名字例如,CaculatorTest或者TestCaculator

 

 

JUNIT 3.8

1.      BUILD PATH中使用ADD LIB配置JUNIT 3jar

1.      to keep green to keep clean

2.      使用junit.framework.TestCase该类创建测试类

a)        实现一个测试类,继承TestCase

b)        测试方法命名规则:testXXX

                     无返回值

                     无形参

2)      通过TestCase中的setUp方法来设置每个测试方法执行前的测试固件,例如,创建对象

3)         通过TestCase中的tearDown方法来设置每个测试方法执行后的测试固件,例如,断开连接

2.      异常的测试方法junit.famework.Assert

  try{

       act_res=ca1.divide(6,0);

       Assert.fail("divide(6,0)失败");

    }

    catch(Exceptionex)

    {

      Assert.assertEquals(Exception.class,ex.getClass());

      Assert.assertEquals("除数不能为0", ex.getMessage());

    }

 

 

 

 

3.      使用jjunt.framework.Test suite来创建测试套件

a)        addTest(new测试类名1(测试方法))

该测试类名1增加一个构造函数,比如,

publicAccountTest(String testMethod)

   {

   super(testMethod);

   }

b)        addTestSuite(测试类名.class)

 

4.      使用junit.extentions.RepeatedTest来创建测试的重复次数

    suite.addTest(neWRepeatedTest(newAccountTest(),3));

 

 

JUNIT 4 8 (4.0)

1.      提供了注解

2.      注解:

@Before ---setUp

@After  --tearDown

@Test   --测试方法可以不使用testXXXX命令,但是建议使用旧的命名风格

        --测试类不需要继承TestCase

@Test(timeout=nnn) –用于测试性能

                 当测试方法的执行时间超过TIMOUT指定的值,旧出错

@Test(expected=异常类型) ---简化异常测试

例如,

   @Test(expected=Exception.class)

   publicvoidtestDivide2()throwsException

   {

      intact_res=ca1.divide(6, 0);

   }//testDevide1

3. 参数化

1. 在测试类外使用@RunWith(Parameterized.class),告诉JUNIT

1) 参数化

2) 运行器使用Parameterized.class

  2.构建一个静态的数组,用于保存输入和预期数据

@Parameters

  publicstaticCollectionpreparedData()

  {

     Object[] [] bject={{3,1,2},{-4,-1,-3},{3,2,-5}};

     returnArrays.asList(object);

 

 

 

 

3.通过构造函数,建立数据和变量的之间的关系【关系是你人为自己的指定的】

publicParameterizeTest(intexpected,intinput1,intinput2)

  {

    this.expected=expected;

    this.input1=input1;

    this.input2=input2;

 }

4. 测试方法直接使用变量,而不是固定的数据

  

 

  

  }

 

 

 

 

Java

Package目的:避免同名

       层次关系:com.sohu.search.query

构造函数,初始化工作

1)      和类名同名

2)      方法前无void

3)      无返回值

抛异常

throw new ExceptionMSG

方法

Throws Exception

作用域:public

Private//只允许程序自身访问,即本类中创建的对象才能访问

断言:1)程序开发者的调试手段

a)        程序执行到某处的预期结果

b)        1.4支持断言

Assert 异常条件:出错信息

java -ea com.w51testing.practise.MyAssert若提示找不到类,则

    CLASSPATH中增加.;

Static 直接调用方法

@注解:元数据(数据的数据)

 


TAG:

 

评分:0

我来说两句

Open Toolbar