JUnit 4.0体验[Java编程]
本文“JUnit 4.0体验[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
JUnit 是 Java 语言事实上的 尺度单元测试库.JUnit 4 是该库三年以来最具里程碑意义的一次公布.它的新特点主如果通过采取 Java 5 中的标志(annotation)而不是操纵子类、反射或命名机制来辨认测试,从而简化测试.在本文中,执着的代码测试人员 Elliotte Harold 以 JUnit 4 为例,具体介绍了如安在自己的工作中利用这个新框架.注意,本文假定读者具有 JUnit 的利用经验.
JUnit 由 Kent Beck 和 Erich Gamma 开辟,几近毫无疑问是迄今所开辟的最重要的第三方 Java 库.正如 Martin Fowler 所说,“在软件开辟范畴,历来就没有如此少的代码起到了如此重要的作用”.JUnit 指导并增长了测试的风行.由于 JUnit,Java 代码变得更结实,更坚固,bug 也比从前更少.JUnit(它本身的灵感来自 Smalltalk 的 SUnit)衍生了很多 xUnit 工具,将单元测试的上风利用于各种语言.nUnit (.NET)、pyUnit (Python)、CppUnit (C++)、dUnit (Delphi) 以及其他工具,影响了各种平台和语言上的程序员的测试工作.
但是,JUnit 仅仅是一个工具罢了.真正的上风来自于 JUnit 所采取的思惟和技术,而不是框架本身.单元测试、测试先行的编程和测试驱动的开辟并非都要在 JUnit 中实现,任何对比 GUI 的编程都必须用 Swing 来完成.JUnit 本身的最后一次更新差不多是三年从前了.固然它被证明比大大都框架更结实、更长期,但是也发现了 bug;而更重要的是,Java 不断在发展.Java 语言目前支持泛型、列举、可变长度参数列表和注释,这些特点为可重用的框架计划带来了新的大概.
JUnit 的阻滞不前并没有被那些想要废弃它的程序员所打败.挑衅者包含 Bill Venners 的 Artima SuiteRunner 以及 Cedric Beust 的 TestNG 等.这些库有一些可圈可点的特点,但是都没有到达 JUnit 的出名度和市场占据份额.它们都没有在诸如 Ant、Maven 或 Eclipse 之类的产品中具有遍及的开箱即用支持.所以 Beck 和 Gamma 着手开辟了一个新版本的 JUnit,它操纵 Java 5 的新特点(特别是注释)的上风,使得单元测试比起用最初的 JUnit 来说越发简单.用 Beck 的话来说,“JUnit 4 的主题是通过进一步简化 JUnit,鼓舞更多的开辟人员编写更多的测试.”JUnit 4 固然保持了与现有 JUnit 3.8 测试套件的向后兼容,但是它仍旧答应是自 JUnit 1.0 以来 Java 单元测试方面最庞大的改良.
注意:该框架的改良是相当前沿的.固然 JUnit 4 的大表面很清楚,但是其细节仍旧可以改变.这意味着本文是对 JUnit 4 抢先看,而不是它的终究效果.
测试办法
从前全部版本的 JUnit 都利用命名约定和反射来定位测试.比方,下面的代码测试 1+1 等于 2:
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
private int x = 1;
private int y = 1;
public void testAddition() {
int z = x + y; assertEquals(2, z);
}
}
而在 JUnit 4 中,测试是由 @Test 注释来辨认的,以下所示:
import org.junit.Test;
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
private int x = 1;
private int y = 1;
@Test public void testAddition() {
int z = x + y;
assertEquals(2, z);
}
}
利用注释的长处是不再需求将全部的办法命名为 testFoo()、testBar(),等等.比方,下面的办法也可以工作:
import org.junit.Test;
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
private int x = 1;
private int y = 1;
@Test public void additionTest() {
int z = x + y; assertEquals(2, 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体验[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:JUnit 4.4新特点
- ·下一篇文章:Java中流的概念
- ·中查找“JUnit 4.0体验”更多相关内容
- ·中查找“JUnit 4.0体验”更多相关内容