锁定老帖子 主题:使用Junit4的时候一个小问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-30
最后修改:2010-07-23
JUnit4.X出来已经很久了,一直没有去尝试使用一下,(这也是自己的一个不足,不太喜欢去尝试新新鲜的工具。我想这对于IT人员来,恐怕是一个很大的不足。)今天突然心血来潮去体验了一下。却发现一个奇怪的问题。如下描述: 我在自己的电脑上写了一个测试程序,用来体验Junit4.7的新功能,没有任何问题,但是呢,将自己的代码拷另外一机子上,然后打开就不行了。Eclipse老是提示assertThat(***)这个方法unresolved,我的第一反就是是没有导入hamcrest包,但是检查buildpath发现导入了hamcrest的core和library这两个包,也就是说是对的呀,但是MyEclipse就是说有问题。百思不得其解,今天在网上看到另外一篇blog,才明白了原因所在。 原来我在新工程里面,添加junit4的jar包的时候,是添加了MyEclipse7.5自带的junit library.而在自己在之前做测试的时候,使用的是自己从网上下载的junit jar包,然后手动导入的。junit4中有一个新的特性就是使用assertThat()这个测试方法。这个方法需要引入hamcrest包,而使用hamcrest时不能用IDE提供的Junit4 JAR包,因为classloader不同。所以把工程中的junit4 library remove掉,然后手工导入下载的junit包,问题得到解决。 顺便介绍一下Junit4常用东东吧。 Junit4.x中的annotations: @Test(expected=java.lang.ArimeticException,timeout=300), @Ignore:被忽略的测试方法, @Before:在所有测试方法之前运行, @After:在所有测试方法之后运行, @BeforeClass(static方法):在测试对象生成之前运行,可以用于开启数据库等一些操作, @AfterClass(static方法):在所有测试方法结束之后运行。
Error与Failure:后者呢表示测试失败,而前者表示程序运行错误,此时是不管测试失败与否的。 测试类如下:
package cn.edu.ccnu.inc.lwm.junit; public class A { /** * @param args */ public int add(int x,int y) { return x+y ; } public int sub(int x,int y ) { return x-y ; } }
针对A的测试类:
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-30
junit4和TestNG比起来还是有差距,junit4比起junit3来并没有跨越式的变化,导致习惯junit3的人也没有心情切换到junit4
|
|
返回顶楼 | |
发表时间:2010-01-30
嗯,junit3和4确实没有大的改变,感觉就是测试方法更加符合西方人的习惯吧。
TestNG我还没有胜过哦,汗 |
|
返回顶楼 | |
发表时间:2010-07-24
junit一般的写小项目用的不是很多
|
|
返回顶楼 | |
浏览 3800 次