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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 更多的灵活性在清单 2 中,您可以看到同一个 测试项目,追求代码质量: JUnit 4 与 TestNG 的对比(3),不过这次是用 TestNG 实现的,这里的代码跟清单 1 中的测试代码有个微妙的差别,这里不再需要那些规则了,我的 init() 方法既不是 static,发现了吗?清单 2.

更多的灵活性

在清单 2 中,您可以看到同一个 测试项目。不过这次是用 TestNG 实现的。这里的代码跟清单 1 中的测试代码有个微妙的差别。发现了吗?


清单 2. 一个 TestNG 测试用例

package test.com.acme.dona.dep; 
 
import static org.testng.Assert.assertEquals; 
import static org.testng.Assert.assertNotNull; 
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.Configuration; 
import org.testng.annotations.Test; 
 
public class DependencyFinderTest { 
 private DependencyFinder finder; 
 
 @BeforeClass 
 private void init(){ 
 this.finder = new DependencyFinder(); 
 } 
 
 @Test 
 public void verifyDependencies() 
 throws Exception { 
  String targetClss = 
   "test.com.acme.dona.dep.DependencyFind"; 
 
  Filter[] filtr = new Filter[] { 
   new RegexPackageFilter("java|junit|org")}; 
 
  Dependency[] deps = 
   finder.findDependencies(targetClss, filtr); 
  
  assertNotNull(deps, "deps was null" ); 
  assertEquals(5, deps.length, "should be 5 large");  
 } 
} 

显然,这两个清单很相似。不过,如果仔细看,您会发现 TestNG 的编码规则比 JUnit 4 更灵活。清单 1 里,在 JUnit 中我必须把 @BeforeClass 修饰的方法声明为 static,这又要求我把 fixture,即 finder 声明为 static。我还必须把 init() 声明为 public。看看清单 2,您就会发现不同。这里不再需要那些规则了。我的 init() 方法既不是 static,也不是 public。

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

Tags:追求 代码 质量

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