1.之前一直认为setUp tearDown在测试类中只执行一次,今天测试了下,才知道,
每个测试方法前执行一次setUp,执行方法后执行tearDown
看测试代码:
import static junit.framework.Assert.*;
import junit.framework.TestCase;
public class CalculatorTest extends TestCase {
private Calculator cal = null;
protected void setUp() throws Exception {
System.out.println("setup....");
cal = new Calculator();
}
protected void tearDown() throws Exception {
System.out.println("teardown....");
}
public void testAdd() {
assertEquals(5, cal.add(2, 3));
}
public void testMinus() {
assertEquals(8, cal.minus(10, 2));
}
public void testMultiply() {
assertEquals(20, cal.multiply(10, 2));
}
public void testDivide() {
assertEquals(5, cal.divide(10, 2));
}
}
测试结果
写道
setup....
teardown....
setup....
teardown....
setup....
teardown....
setup....
teardown....
teardown....
setup....
teardown....
setup....
teardown....
setup....
teardown....
2.有没有办法在整个类执行前 执行一次,整个类执行完后执行一次呢?
Junit3没有提供这样方法,junit4有的
看代码
import junit.framework.TestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
public class BeforeClassTest extends TestCase{
@BeforeClass
public void testBeforeClass(){
System.out.println("before class");
}
public void testAdd() {
}
public void testMinus() {
}
public void testMultiply() {
}
public void testDivide() {
}
@AfterClass
public void testAfterClass(){
System.out.println("after class...");
}
}
执行结果
写道
before class
after class...
after class...
就执行了一次。
注意@BeforeClass和@AfterClass的方法也要以test开头
本文详细解析了JUnit测试框架中测试方法的执行流程,包括setUp和tearDown方法的作用及调用时机,并介绍了如何使用@BeforeClass和@AfterClass注解来实现整个测试类执行前后仅运行一次的特定方法。
360

被折叠的 条评论
为什么被折叠?



