addons怎样搜Java_java测试心得总结2__JUnit addons使用及测试类的私有方法

参考java测试心得总结--测试培训计划

参考java测试心得总结1__JUnit测试基本使用

Unit  addons

JUnit-addons is a collection of helper classes for JUnit. This library can be used with both JUnit 3.7 and JUnit 3.8.x

http://sourceforge.net/projects/junit-addons

1.        junitx.framework包主要功能

该包以类方法的方式扩展junit.framework.Assert的功能。

也就是这时候,可以不用继承相应的类,可以直接使用断言的相关的功能。事实上基于元数据的测试框架都基本采用这种方式实现断言。

junitx.framework.Assert

junitx.framework.ArrayAssert

junitx.framework.ComparableAssert

junitx.framework.FileAssert

junitx.framework.ListAssert

junitx.framework.ObjectAssert

junitx.framework.NamingAssert

junitx.framework.OrderedTestSuite

junitx.framework.StringAssert

junitx.framework.ThrowableAssert

2.        测试类的私有属性

2.1        测试类的私有属性的实现

使用相关类(junitx.util.PrivateAccessor)的方法类访问私有属性和方法。

参考:

Example\JUnit_Addons_Example\example1目录下

example1.TestAccount类

example1.Account类

2.2        实现访问类的属性和方法的原理

利用Java的反射机制来实现的。

        使用java.lang.Class的相关方法,获得相关指定对象的Field,然后调用

field.setAccessible(true);绕过访问权限的检查,然后可以访问Field的值,当然

也可以设置Field的值。

        使用java.lang.Class的相关方法,获得相关指定对象的Method;然后调用

field.setAccessible(true);绕过访问权限的检查;最后执行该方法.

3.        junitx.extensions包主要功能

这个包实际上在使用模板方法模式创建测试用例工具类。

使用了模板方法模式,定义抽象类,把相关的测试方法给出具体实现,把被测试对象的创建放到基本方法中。

JUnit-addons框架自己的例子有:

junitx.extensions.ComparabilityTestCase

junitx.extensions.EqualsHashCodeTestCase

junitx.extensions.SerializabilityTestCase

这几个类都定义了几个抽象方法,这些方法主要是用于创建对象的方法,需要在具体类里面实现这些方法。在TestSuite里面,增加测试用例是通过,使用类的无参数构造器来实现的,因此上面的这些类,为了实现测试对象的注入,采用了set注入的方式,而不是构造器注入方式。

参考例子:Example\JUnit_Addons_Example\example1\src\extensions目录下extensions.WdzEqualsHashCodeTestCase类

其实,根据IOC的原理,可以把上面几个类的类结构修改下,可以考虑采用构造注入的方式,更好些,不用去定义一些具体类。不过,如果采用构造注入这种方式,需要定义自己的的TestRunner了。

参考:

Example\JUnit_Addons_Example\example1\src\extensions目录下

Extensions.WdzComparabilityTestCase类实际上是使用IOC来实现上面的

junitx.extensions.ComparabilityTestCase的业务目标;采用类似的方法,可以对上面的junitx.extensions.EqualsHashCodeTestCase,junitx.extensions.SerializabilityTestCase进行重构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值