Morning@Weblog

7/7/2005

善用JUnit assert*

Filed under: — site admin @ 11:39 am

昨天看到一位同事的unit test是这么写的:

if (…) {
 assertTrue(false);
}
assertTrue(true);

抛开assertTrue(true)这个“无效”语句不说,怎么看怎么觉得别扭。在JUnit中,assert有很多“变体”,灵活使用将会给TestCase的结果验证带来很好的表达能力。它们包括:

assertTrue
assertFalse
assertEquals
assertNotNull
assertNull
assertSame
assertNotSame
fail

其中,每个assert*还有一个带有message的重载方法,比如:

assertEquals(String msg, Object arg1, Object arg2);

这表示,当assert失败时,会附带一段用户友好的说明性文字。

由此,对于上述的unit test,更好的书写方式应该是:

if (…) {
 fail("…");
}

而最好应该直接写成assertTrue(…) 或者assertFalse(…)。

想不到一个小小的assert也会引出问题来。

Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)

(required)


Powered by WordPress