JUnit单元测试入门(2)--JUnit基础
JUnit单元测试入门(二)--JUnit基础
1、基础介绍
1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。
2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的,这样可以保证产品代码与测试代码分离,互不影响。
3.单元测试主要是来测试程序的结果和自己期望的值是否相等。
2、JUnit测试框架目前大体分为两种(JUnit 3.8 和 JUnit 4.x)
2.1、JUnit 3.8
涉及到的包一般是 import junit.framework.*
在 JUnit 3.8 中,测试类要继承TestCast类,而TestCast类又继承于Assert类,测试方法需满足如下原则:
1)修饰符设为 public
2)返回类型 void
3)没有方法参数
4)方法名称必须以test开头
5)测试类都继承于TestCase类
另外,使用过程中,测试类不能依赖于测试方法的执行顺序
在新建的测试类中,有两个方法需要强调一下:
setUp方法和testDown方法:都是TestCase类的方法
1)setUp方法是在执行每个测试方法之前执行的,可以做一些初始化的工作,例如类实例声明。
2)testDown方法是在执行每个测试方法之后执行的,例如在此销毁对象。
2.2、JUnit 4
涉及到的包是 import org.junit.*
在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解的方式来定义,只要在测试方法加上@Test就可以进行测试,但有些原则还是会以junit3 的风格来设计,比如测试方法以test开头,习惯问题吧,
•@Test :定义一个测试方法的标志
•@Test(timeout=1000) :设置超时时间,如果测试时间超过了你定义的timeout,测试失败
•@Test(expected) : 申明出会发生的异常,比如 @Test(expected = Exception.class)
•@Before : 跟junit 3.8 上的setUp() 方法同样的效果,方法名最好和setUp()一样,但不强求,在每一个测试方法之前被执行
•@After : 跟junit 3.8 上的tearDown() 方法同样的效果,方法名最好和tearDown()一样,但不强求,在每一个测试方法之后被执行
•@BeforeClass : 被该注解申明的方法,功能是:在所有的测试方法之前执行,只执行一次
•@AfterClass : 被该注解申明的方法,功能是:在所有的测试方法之后执行,只执行一次
•@Ignore :让 测试方法 或 测试类 不被执行,让其失去测试的功能