比JUnit4更酷的Annotation @Test(checkMethod="xxx") - IdeaGrace | Java文栏 | J2EE,IdeaGrace,web,开发,技术,交流,教程 - http://www.ideagrace.com/
如果你看过
p-unit如何测试Vector#add(Object)是线程安全的,就可以体会到p-unit如何适合多线程测试。
如果你觉得check_testAdd不符合你的编程风格的话,现在你可以使用 Annotation来表示check方法了,这就是@checkMethod Annotation, 上一篇文中的例子将写成:
public class VectorTest extends TestCase {
public static void main() {
ConcurrentRunner runner = new ConcurrentRunner();
runner.setMethodFilter(new AnnotationMethodFilter());
runner.run(VectorTest.class);
}
private Vector _vector = new Vector();
@Test(checkMethod = "checkAdd")
public void testAdd() {
_vector.add(new Object());
}
public void checkAdd() {
assertEquals(10, _vector.size());
}
}
上 面例子中@Test表示该方法为测试案例,checkMethod表示该方法对应的检查方法,这在某种程度上帮助你将测试逻辑和断言(assert部分) 分离。 p-unit 核心部分支持jdk >= 1.3 因此内建标准的method filter还是根据test的命名规则,test开头以及check_前缀做为该test的check方法。为了使用Annotation,只需加入下 面一行代码:
runner.setMethodFilter(new AnnotationMethodFilter());
这也使得你可以定制自己的命名规则,嵌入p-unit内核。体会到p-unit酷的部分了吗?
另外,p-unit支持@Test(expected=Throwable.class),这点和JUnit 4完全一样。
该功能不包含在p-unit-0.10 release中,将在下一个版本中包含该功能,或者你可以check out svn最新代码来抢先体验该功能。
p-unit 主页:
http://p-unit.sourceforge.net
p-unit 下载:
p-unit-0.10 release
喜欢本文?那就在线订阅更多文章更新吧!
加入技术论坛讨论
访问IdeaGrace开发者博客
浏览更多java开源项目
IdeaGrace开发者Wiki
更好的浏览体验,