JUnit基础注解
@BeforeClass注解
@BeforeClass常常用于在测试类开始之前,使用这个的方法常常被用于一些需要执行较大的代码执行量,例如是在测试类之前连接与打开数据库,从而让数据库可以执行数据库。
不仅仅如此,在运行JUnit测试类时,其常常为第一个执行的方法,他会在@Before注解之前运行,其与@Before的另一个不同是,@BeforeClass是全局只执行一次的,这代表着,@BeforeClass注释方法是被static修饰的。
@Before注释
@Before注解常常也是在测试类@Test注释之前运行的,所以这种方法常常被用于初始化@Test注解方法中所需的资源进行初始化,而且,与@BeforeClass注释方法不同,@Before是可以执行多次的,每次当有@Test注释方法运行时,@Before都会被调用一次,并且是测试类中的任意一个@Test注释方法被调用时,都会执行。
@Test注释
在测试类中,@Test注释包含了真正的测试代码。并且测试方法必须使用public void进行修饰,。在@Test注释之中有两个可以选择的参数。
@Test(excepted=xx.class): xx.class 表示异常类,表示测试的方法抛出此异 常时,认为是正常的测试通过的
@Test(timeout = 毫秒数) :测试方法执行时间是否符合预期。
@After注释
与@Before测试类类似,@After注释方法会在任意的@Test方法执行后进行运行,即使被@Test 或 @Before修饰的测试方法抛出异常。与@Before配套,所以常常被用于关闭在@Before中初始化的资源。
@AfterClass注释
与@BeforeClass测试类类似,@AfterClass注解也是全局唯一的方法,因而也需要使用static来修饰,并且在全局代码中仅仅执行一次。它是在全局中最后一个被运行的注释方法。常常被使用于关闭在@BeforeClass测试类中打开的资源,如是关闭数据库。
@Ignore注释
被这个注释修饰的测试方法会被测试运行器忽略。
注释代码测试运行
被测试类代码:
package test.Notes;
public class NoteTest {
public String Hi(){
return "hello,world";
}
}
测试代码块:
package test.Notes;
import org.junit.*;
import static org.junit.Assert.assertEquals;
/**
* NoteTest Tester.
*
* @author <Authors name>
* @since <pre>4月 27, 2022</pre>
* @version 1.0
*/
public class NoteTestTest {
@BeforeClass
public static void beforeClass() throws Exception {
System.out.println("@BeforeClass is running");
}
@AfterClass
public static void afterClass() throws Exception{
System.out.println("@AfterClass is running");
}
@Before
public void before() throws Exception {
System.out.println("@Before is running");
}
@After
public void after() throws Exception {
System.out.println("@After is running");
}
/**
*
* Method: add(int i, int j)
*
*/
@Test
public void testAdd() throws Exception {
NoteTest noteTest = new NoteTest();
String ans = noteTest.Hi();
String testAns = "hello,world";
assertEquals(testAns,ans);
System.out.println("@Test is testing");
}
}
运行结果如图3-1
图3-1 运行结果图