WEB开发网
开发学院软件开发Java 追求代码质量: JUnit 4 与 TestNG 的对比 阅读

追求代码质量: JUnit 4 与 TestNG 的对比

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 在清单 5 中,我用 Java 1.4 定义了一个 TestNG 测试,追求代码质量: JUnit 4 与 TestNG 的对比(7),该测试可接收两个参数:classname 和 size,这两个参数可以验证某个类的层次结构(也就是说,就可以只定义一个 测试用例,然后,如果传入 java.ut

在清单 5 中,我用 Java 1.4 定义了一个 TestNG 测试,该测试可接收两个参数:classname 和 size。这两个参数可以验证某个类的层次结构(也就是说,如果传入 java.util.Vector,则 HierarchyBuilder 所构建的 Hierarchy 的值将为 2 )。


清单 5. 一个 TestNG 参数化测试
package test.com.acme.da; 
 
import com.acme.da.hierarchy.Hierarchy; 
import com.acme.da.hierarchy.HierarchyBuilder; 
 
public class HierarchyTest { 
 /** 
 * @testng.test 
 * @testng.parameters value="class_name, size" 
 */ 
 public void assertValues(String classname, int size) throws Exception{ 
 Hierarchy hier = HierarchyBuilder.buildHierarchy(classname); 
 assert hier.getHierarchyClassNames().length == size: "didn't equal!"; 
 } 
} 

清单 5 列出了一个泛型测试,它可以采用不同的数据反复重用。请花点时间思考一下这个问题。如果有 10 个不同的参数组合需要在 JUnit 中测试,您只能写 10 个测试用例。每个测试用例完成的任务基本是相同的,只是受测方法的参数有所改变。但是,如果使用参数化测试,就可以只定义一个 测试用例,然后,(举例来说)把所需的参数模式加到 TestNG 的测试套件文件中。清单 6 中展示了这中方法:


清单 6. 一个 TestNG 参数化测试套件文件
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd"> 
<suite name="Deckt-10"> 
 <test name="Deckt-10-test"> 
 
 <parameter name="class_name" value="java.util.Vector"/> 
 <parameter name="size" value="2"/>  
 
 <classes>   
  <class name="test.com.acme.da.HierarchyTest"/> 
 </classes> 
 </test>  
</suite> 

上一页  2 3 4 5 6 7 8  下一页

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接