IDEA中JUnit有四种方式:
其中Compile、Provided为直接测试,只需满足单元测试编写规定,在类中就可在@Test下对方法进行单元测试。
而Test方式下主要是对已经编写好的类进行测试,流程如下。
- 在每个模块下都新建一个文件夹(与src文件夹同级并列)以将测试文件与源文件分开。
- 右键该文件夹->Mark Directory as->Test Sources Root->该文件夹会变绿
- 在源文件代码编辑区右击->Go To->Test
- 配置测试。“1”为单元测试所用包;“2”前奏与尾声的选择;“3”为选择源文件中要测试的方法(当然测试文件中也可自行定义) 。配置完成后会在同级绿色文件夹中生成后XxxTest的测试文件。
JUnit单元测试文件规定
测试类的要求:public,提供公共的无参构造器
测试方法的要求:public,无形参,无返回值。
#单元测试示例,在别处同级的src下定义了一个Caculate类,里面有add方法,此处对其进行测试
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class CaculateTest {
private Caculate caculator;
int a = 3;
int b = 5;
@Before
public void setUp() throws Exception {
caculator = new Caculate();
}
@Test //没有@Test,则紧接着的方法不会被执行
public void add() {
assertEquals(caculator.add(a,b),8);
}
@Test //自行定义的测试方法
public void show() {
int c = 12;
System.out.println(caculator.add(a, c));
}
}
- Error:(8, 24) java: 程序包org.junit不存在
解决方案:添加junit-4.12包
File -> Project Struct -> Libraies -> 点击"2"处加号 -> 选择Java -> 添加 Lib 中junit-4.12(IDEA安装路径下) -> 完成结果如"4"
- java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
解决方案:添加hamcrest包
选择junit-4.12包所在的扩展库"6"->点击"7"处的加号->添加lib中hamcrest包->完成结果如"8"
PS:"6"处的扩展库名,默认是第一个包的名字,可以自行更改
值得注意是,有些模块Module下并不存在该扩展库,该模块下要想进行JUnit单元测试,需添加该扩展库