JUnit笔记



为什么要进行单元测试?
单元测试就是,写个类要给别人用,会不会有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指测试程序本身出错

你可能感兴趣的:(框架,MyEclipse,JUnit,单元测试)