`

jUnit单元测试

    博客分类:
  • TDD
阅读更多
从头学jUnit,简单介绍一些功能,和一些问题的解决办法

先介绍一些jUnit4.x的标签
AnnotationDescription
@Test声明测试方法
@Before每个测试运行前执行,提供测试环境(比如读数据,实例初始化)
@After每个测试运行后执行,清空测试环境(删除临时数据等)
@BeforeClass静态方法,只执行一次,在所有测试开始前执行,一般用于连接数据库这种比较耗时间的动作
@AfterClass静态方法,只执行一次,所有测试完成后执行,一般用于清除动作,如数据库断开
@Ignore忽略测试方法,当测试方法不再适用或执行时间过长时使用
@Test (expected = Exception.class)当方法执行没有抛出异常时Fails
@Test(timeout=100)当方法执行超过100毫秒Fails

注意:jUnit认为测试按随便顺序进行,因此测试方式之间不应相互依赖。

junit以Assert类提供的静态方法(方法名以asserts)作测试.
Statement Description
fail(String) 一般用于检测是否进入莫段代码,或者在测试代码执行前调用
assertTrue([message], boolean condition) boolean条件检测
assertsEquals([String message], expected, actual) 测试两个值是否相同。注意:检测数组时,测试其引用是否相同而不是数组内容
assertsEquals([String message], expected, actual, tolerance) 测试float、double值.tolerance表示匹配的精准.
assertNull([message], object) 对象为空.
assertNotNull([message], object) 对象不为空.
assertSame([String], expected, actual) 两变量指向同一对象.
assertNotSame([String], expected, actual) 两变量指向不同对象.


JUnit使用静态方法,Eclipse不是总能自动地静态导入(static import).
解决办法:Open the Preferences via Window → Preferences and select Java → Editor→Content Assist→Favorites→New Type→add "org.junit.Assert"


TestSuite你可以批量执行测试类。只需要在SuiteClasses中加入你的测试类,然后运行
package com.vogella.junit.first;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ MyClassTest.class, MySecondClassTest.class })
public class AllTests {

} 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics