【原】Junit4.x学习笔记


1、测试类无需继承任何类,只需在被测试的方法前加上注解@Test(全名为org.junit.Test)

2、测试方法必须是public void *(),即方法名可以随便命名但最好以test开头

3、junit4.x也有junit3.8的setUp、tearDow的功能,它对应的注解分别是 @Before 、@After,其初始化和销毁资源的方法名可以随便命名,但必须是public void且无参

4、junit3.8的TestCase不存在所有测试用例执行之前或执行之后的操作方法。而在junit4.x中出现了这样的注解,分写是@BeforeClass 和 @AfterClass,它在整个测试类里只执行一次,而不像@Before 、@After那样在每个测试方法执行前或执行后执行。

5、被@BeforeClass 和 @AfterClass注解的方法的命名必须是public static void *()

6、junit4.x异常处理:@Test(expected=异常类型.class);将异常throws测试方法,让junit处理,而非junit3.8中的在测试方法内处理,相比3.8要简洁得多。

7、@Test(timeout=毫秒数),它用于简单的性能测试,表示执行该测试方法必须在此时间内完成,否则该方法测试失败。(不推荐使用,最好使用性能测试框架,因为junit只是单元测试框架)

8、同时被注解Test、Ignore的测试方法,将被junit4.x忽略掉

9、测试运行器使用方法:(目的就是为了提供测试效率,可以一同执行多个测试类)

         A、创建一个空类作为测试套件的入口

         B、使用org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses修饰这个类

         C、将org.junit.runners.Suite作为参数传递给RunWith, 以提示Junit为此类使用套件运行

              器执行

D、将需要放入此测试套件的测试类组成数组作为SuiteClasses的参数,该参数同样可以是测试套件类,即套件包括套件

         E、保证这个空类使用public修饰,而且存在公开的不带任何参数的构造函数

10、为每个包创建一个测试套件,这个测试套件包括该包的所有测试类,同样为另外的包也创建一个测试套件,最后创建一个总的测试套件,该套件包括每个包的测试的套件。

11、参数化测试要点:

         A、测试类必须被Parameterized测试运行器注解修饰

         B、准备数据。数据的准备需要在一个方法中进行,该方法要满足一定要求:

                       1)该方法必须被Parameters注解修饰

                       2)该方法必须为public static

                       3)该方法必须返回Collection类型

                       4)该方法的名字不作要求

                       5)该方法没有参数

C、 方法体内准备的数据必须是一个Object二维数组,并运用Arrays.asList转换成Collections

         D、声明构造函数。该构造函数的参数必须和前面静态方法的二维数组一致,通过带参构造把数

            据一组一组地传给该类的成员变量,以供测试方法使用。这样每个对象都能得到一组数组。

12、参数化测试适合测试大量数据(相同的输入及输出条件)但只适合某一个测试类的某一个方法

13、如何测试私有方法:得到类的Class对象;用Class对象的getDeclaredMethod得到方法得到对应的Method对象;调用Method对象的setAccessible(true),设置可以访问该私有方法;调用Method对象的Invoke方法执行调用。

14、不要为了测试而修改源代码(如把私有方法改为共有方法),测试出 bug才去修改源代码

15、Interger.TYPE==int.class Interger.class!= int.class

16、测试套件不要有循环包含关系否则你就会一直测试下去,O(∩_∩)O哈哈~

17、junit将测试失败的情况分为两种:failure和error。Failure是由断言引起; error有代码异常引起,可能是测试代码本身产生也有可能是被测试的代码引起的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值