善用JUnit assert*
昨天看到一位同事的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>
