JUnit和单元测试入门简介[4] 单元测试工具
comparision fixture:这个也是比较少用的东东。
custom fixture:这个是自定义设置。只是生成一个框架。
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.PrivateAclearcase/" target="_blank" >ccessor)的方法类访问私有属性和方法。
参考:
ExampleJUnit_Addons_Exampleexample1目录下
example1.TestAccount类
example1.Account类
2.2 实现访问类的属性和方法的原理
利用Java的反射机制来实现的。
l 使用java.lang.Class的相关方法,获得相关指定对象的Field,然后调用
field.setAccessible(true);绕过访问权限的检查,然后可以访问Field的值,当然
也可以设置Field的值。
l 使用java.lang.Class的相关方法,获得相关指定对象的Method;然后调用
field.setAccessible(true);绕过访问权限的检查;最后执行该方法.
3. junitx.extensions包主要功能
使用了模板方法模式,定义抽象类,把相关的测试方法给出具体实现,把被测试对象的创建放到基本方法中。