【java】Junit单元测试(IDEA)
Junit是一个开放源代码的java测试框架
文章目录
1. 传统的main()方法测试
在编写程序时,最科学的方法就是边写程序边测试,先看以前是如何对一个类或者接口进行测试的:
定义一个类:
public class Caculator {
public int sub(int a,int b){
return a-b;
}
public int add(int a,int b){
return a+b;
}
}
使用main()方法对这个类进行测试:
package cn.itcast.test;
import cn.itcast.Junit.Caculator;
public class CaculatorTest {
public static void main(String[] args) {
Caculator ca = new Caculator();
int result = ca.add(3,4);
System.out.println(result);
int result1 = ca.sub(4,3);
System.out.println(result1);
}
}
由上面可以看出,之前的测试方法是在main()中进行,在main()方法中调用一个我们要测试的方法,然后打印输出结果,看是否正确。
2. Junit单元测试
所谓单元测试就是一步步的,以方法为单位的进行测试,比如一个类中有很多的方法,想知道这些方法对不对,就可以使用单元测试框架进行测试。
定义一个类:
public class Caculator {
public int sub(int a,int b){
return a-b;
}
public int add(int a,int b){
return a+b;
}
}
使用Junit单元测试方法虽这个类中的方法进行测试:
package cn.itcast.test;
import cn.itcast.Junit.Caculator;
import org.junit.Assert;
import org.junit.Test;
public class CaculatorTest {
@Test
public void testAdd(){
Caculator ca = new Caculator();
int result = ca.add(3,4);
Assert.assertEquals(7,result);
}
@Test
public void testSub(){
Caculator ca = new Caculator();
int result = ca.sub(4,3);
Assert.assertEquals(1,result);
}
}
3. Junit 单元测试的步骤
- 定义一个测试类(测试用例)
测试类名:被测试的类名Test 比如:CalculatorTest
包名:xxx.xxx.xx.test cn.itcast.test- 定义测试方法:可以独立运行
方法名:test测试的方法名 testAdd()
返回值:void
参数列表:空参- 给方法加@test
- 导入Junit的依赖环境
- 判定结果:
红色:代表失败
绿色:代表成功
一般会使用 Assert.assertEquals(期望的结果,运算的结果)
5. Junit单元测试相对于main()方法的好处
第一:
JUnit的结果更加直观,直接根据状态条的颜色即可判断测试是否通过,而用main方法你需要去检查他的输出结果,然后跟自己的期望结果进行对比,才能知道是否测试通过。
第二:
JUnit让我们同时运行多个测试变得非常方便
第三:
如果方法很多,所有的方法都在main()中测试,那么会很臃肿,而用Junit一个方法对应一个测试方法,简单明了。
6. IntelliJ IDEA下进行Junit单元测试(两种方式)
第一种方式:
先见一个Module,将其命名为Test,在Test的src文件中写一个Person类,

选中类名Person,按快捷键Ctrl+Shift+t,选择Create new Test,用于自动生成测试类。


创建的自定义测试类即使添加路径后仍然报错。

因为添加路径以后还是报错,考虑到这个项目是我新建的,所以重新导入下jar包,试一下,File–Project Structure



添加jar包成功后再次自动创建测试类:


嘿嘿,跟假想的一样,成功啦。。。。
第二种方式:
同样先建一个Module,将其命名为Test,在Test的src文件中写一个Person类,在Person类下面,右键选择Generate或者使用快捷键 alt+insert:

创建的测试类会有错误

这是点击alt+enter两次,发现程序仍然拨错,

尝试建一个Person类包存放Person类:


搞定了,建议使用第一种方式。
更多推荐
所有评论(0)