一、junit4测试框架
1.junit4测试框架配置
(1)创建maven项目,pom.xml文件里导入依赖如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
(2)导入jar包
点击 File -> Project Structure,点击Project Structure界面左侧的“Modules”显示下图界面。
在 “Dependencies” 标签界面下,点击右边绿色的 “+”号,选择第一个选项“JARs or directories…”,选择相应的jar包(IDEA的安装目录\lib\junit-4.12.jar,hamcrest-core-1.3.jar,junit.jar),点“OK”,jar包添加成功。
(3)方便测试case管理可在src->test->java下创建package,然后添加class。
2. junit常用注解
(1)@Test
表示使用此注解的方法为一个单元测试用例,在一个测试用例中可以多次声明此注解,每个注解为@Test的方法只被执行一次。
(2)@BeforeClass
表示使用此注解的方法在测试类被调用之前执行,在一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次。
(3)@AfterClass
表示使用此注解的方法在测试类被调用结束退出之前执行,在一个测试类中只能声明此注解一次,并且此注解对应的方法只能被执行一次。
(4)@Before
表示使用此注解的方法在每个@Test调用之前被执行,即一个类中有多少个@Test注解方法,那么@Before注解的方法就会被调用多少次
(5)@After
表示使用此注解的方法在每个@Test调用结束之后被执行,即一个类中有多少个@Test注解方法,那么@Before注解的方法就会被调用多少次。
(6)@Ignore
表示使用此注解的方法为暂时不执行的测试用例方法,会被JUnit忽略执行。
举例:
package com.testcase;
import org.junit.*;
public class Junit4Test {
@BeforeClass
public static void beforeClass(){
System.out.println("before class");
}
@Before
public void beforeFun(){
System.out.println("fun before");
}
@Test
public void fun1(){
System.out.println("fun1 test");
}
@Test
public void fun2(){
System.out.println("fun2 test");
}
@Test
@Ignore
public void fun3(){
System.out.println("fun3 test");
}
@After
public void afterFun(){
System.out.println("fun after");
}
@AfterClass
public static void afterClass(){
System.out.println("after class");
}
}
输出:
before class
fun before
fun1 test
fun after
fun before
fun2 test
fun after
Test ignored.
after class
3.运行器RunWith
(1)概念了解
测试方法:测试方法就是用@Test注解的一些函数。
测试类:包含一个或多个测试方法的一个**Test.java文件。
测试集:指一个suite,可能包含多个测试类。
测试运行器:决定了用什么方式偏好去运行这些测试集、类、方法。
(2)常见运行器
@Runwith 指放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认的运行器。
@RunWith(Parameterized.class)参数化运行器,配合@Parameters使用JUnit的参数化功能
@RunWith(Suite.class) @SuiteClasses({Atest.class,Btest.class,Ctest.class})测试集运行器配合使用测试集功能。
@RunWith(JUnit4.class),junit4的默认运行器。
@RunWith(JUnit28ClassRunner.class),用于兼容junit3.8的运行器。
一些其他运行器具备更多功能,例如@RunWith(SpringJUnit4Class)集成了spring的一些功能。
(3)套件测试
“套件测试”是指捆绑了几个单元测试用例并运行起来。在JUnit中,@RunWith和@Suite这两个注解是用来运行套件测试。
可新建一个package作为suite,示例如下:
testcase存放测试case,suite01存放suit运行套件。
在SuiteDemo01Test里面可以将需要测试的测试类按顺序放入,格式如下:
@RunWith(Suite.class)
@Suite.SuiteClasses({
LoginTest.class,
SearchTest.class
})
public class SuiteDemo01Test {
}