JUnit笔记
时间:2010-07-17 来源:maiiho
为什么要进行单元测试?
单元测试就是,写个类要给别人用,会不会有BUG?
一般源代码和测试代码是分两个包来进行的
JUnit已经在MyEclipse中集成了
一个测试类
public void testAdd()
{
int z = new T().add(5, 3) ;
assertEquals(8, z) ; // 8是期望值,z是实际值
}
其他测试框架TestNG
1.4新加了一个方法
assertThat()
这个方法替代了其他所有的assert....
assertThat(z, is(8)) ;
assertThat(z, is(not(1))) ;
想用以上方法,还得下面一个hamcrest包
把一下两个包加入到项目工程里即可
hamcrest-code-...
hamcrest-library-...
引入是这样的
import org.hamcrest.Matchers.* ;
assertThat(z, allOf(greaterThar(5), lessThan(10))) ;
怎么测试抛出指定异常呢?
给方法注解
@Test(expected=java.lang.ArithmeticException.class)
还有一种写法,写timeout=100,意思就是超过100毫秒就不执行了
@Test(expected=java.lang.ArithmeticException.class, timeout=100)
注解都有什么呢?
@Test 测试方法
@Ignore 忽略的测试方法
@Before 在每一个测试方法之前运行
@After 在每一个测试方法之后运行
@BeforeClass 所有测试开始之前运行
@AfterClass 所有测试结束之后运行
这些测试注解可以叠加
@Before 和 @BeforeClass 有什么区别呢?
前者是方法运行之前,后者是类运行之前
想同时测试两个类怎么办?
Run As --> Run Configurations --> JUnit --> Run all tests
命名规则
类放在test包内
类名用XXXTest结尾
方法用testXXXMethod命名
Failure 和 Error 的区别
Failure指测试失败
Error指测试程序本身出错
相关阅读 更多 +