快速业务通道

JUnit 4.0体验 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
z);   } }

下面这个方法也同样能够工作:

import org.junit.Test; import junit.framework.TestCase; public class AdditionTest extends TestCase {   private int x = 1;   private int y = 1;   @Test public void addition() {    int z = x + y; assertEquals(2, z);   } }

JUnit 4.0体验(2)

时间:2011-01-03 IBM

这允许您遵循最适合您的应用程序的命名约定。例如,我介绍的一些例子采用的约定是,测试类对其测试方法使用与被测试的类相同的名称。例如,List.contains() 由 ListTest.contains() 测试,List.add() 由 ListTest.addAll() 测试,等等。

TestCase 类仍然可以工作,但是您不再需要扩展它了。只要您用 @Test 来注释测试方法,就可以将测试方法放到任何类中。但是您需要导入 junit.Assert 类以访问各种 assert 方法,如下所示:

import org.junit.Assert; public class AdditionTest {   private int x = 1;   private int y = 1;   @Test public void addition() {    int z = x + y;    Assert.assertEquals(2, z);   } }

您也可以使用 JDK 5 中新特性(static import),使得与以前版本一样简单:

import static org.junit.Assert.assertEquals; public class AdditionTest {   private int x = 1;   private int y = 1;   @Test public void addition() {    int z = x + y; assertEquals(2, z);   } }

这种方法使得测试受保护的方法非常容易,因为测试案例类现在可以扩展包含受保护方法的类了。

SetUp 和 TearDown

JUnit 3 测试运行程序(test runner)会在运行每个测试之前自动调用 setUp() 方法。该方法一般会初始化字段,打开日志记录,重置环境变量,等等。例如,下面是摘自 XOM 的 XSLTransformTest 中的 setUp() 方法:

protected void setUp() {   System.setErr(new PrintStream(new ByteArrayOutputStream()));   inputDir = new File("data");   inputDir = new File(inputDir, "xslt");   inputDir = new File(inputDir, "input"); }

在 JUnit 4 中,您仍然可以在每个测试方法运行之前初始化字段和配置环境。然而,完成这些操作的方法不再需要叫做 setUp(),只要用 @Before 注释来指示即可,如下所示:

@Before protected void initialize() {   System.setErr(new PrintStream(new ByteArrayOutputStream()));   inputDir = new File("data");   inputDir = new File(inputDir, "xslt");   inputDir = new File(inputDir, "input"); }

甚至可以用 @Before 来注释多个方法,这些方法都在每个测试之前运行:

@Before protected void findTestDataDirectory() {   inputDir = new File("data");   inputDir = new File(inputDir, "xslt");   inputDir = new File(inputDir, "input"); } @Before protected void redirectStderr() {   System.setErr(new PrintStream(new ByteArrayOutputStream())); }

JUnit 4.0体验(3)

时间:2011-01-03 IBM

清除方法与此类似。在 JUnit 3 中,您使用 tearDown() 方法,该方法类似于我在 XOM 中为消耗大量内存的测试所使用的方法:

protected void tearDown() {   doc = null;   System.gc(); } 

对于 JUnit 4,我可以给它取一个更自然的名称,并用 @After 注释它:

@After protected void disposeDocument() {   doc = null;   System.gc(); }

与 @Before 一样,也可以用 @After 来注释多个清除方法,这些方法都在每个测试之后运行。

最后,您不再需要在超类中显式调用初始化和清除方法,只要它们不被覆盖

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号