jUnit单元测试

从头学jUnit,简单介绍一些功能,和一些问题的解决办法

先介绍一些jUnit4.x的标签
[table]
|Annotation|Description|
|@Test|声明测试方法|
|@Before|每个测试运行前执行,提供测试环境(比如读数据,实例初始化)|
|@After|每个测试运行后执行,清空测试环境(删除临时数据等)|
|@BeforeClass|静态方法,只执行一次,在所有测试开始前执行,一般用于连接数据库这种比较耗时间的动作|
|@AfterClass|静态方法,只执行一次,所有测试完成后执行,一般用于清除动作,如数据库断开|
|@Ignore|忽略测试方法,当测试方法不再适用或执行时间过长时使用|
|@Test (expected = Exception.class)|当方法执行没有抛出异常时Fails|
|@Test(timeout=100)|当方法执行超过100毫秒Fails|
[/table]
注意:jUnit认为测试按随便顺序进行,因此测试方式之间不应相互依赖。

junit以Assert类提供的静态方法(方法名以asserts)作测试.
[table]
|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) |两变量指向不同对象.|
[/table]

JUnit使用静态方法,Eclipse不是总能自动地静态导入(static import).
解决办法:Open the Preferences via Window → Preferences and select Java → Editor→Content Assist→Favorites→New Type→add "org.junit.Assert"
[img]http://www.vogella.com/articles/JUnit/images/xstaticimport10.png.pagespeed.ic.Q7bManXH2O.png[/img]

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 {

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值