Junit单元测试
作者:互联网
前言
平时在写代码的时候,如果需要测试某个功能我们一般会创建一个Test的测试类,然后写一个main方法,在main方法中测试我们的代码,但是每次需要测试新功能的时候就不得不把原来的测试代码注释掉,或者再写一个Test类,这样很麻烦,建议再测试代码的时候使用Junit测试
Junit使用方法
例子:比如我们现在有一个Calculator,需要测试它里面的 add() 和 sub()。
/**
* @Author superMonkey
* @Date 2022/7/21 23:49
* @Description TODO
*/
public class Calculator {
/**
* 相加的方法
* @param a
* @param b
* @return
*/
public int add(int a, int b) {
return a + b;
}
/**
* 相减的方法
* @param a
* @param b
* @return
*/
public int sub(int a, int b) {
return a - b;
}
}
第一步:
在Calculator类所在包路径的同级目录下面建立一个test的包。
在test的包里面创建一个
测试类名Test
的类,例如CalculatorTest的测试类。在测试类中创建测试方法,命名
test需要测试的方法名
,例如testAdd()。在当前方法的上面加上 @Test 注解,这个注解来自于 org.junit这个包下。
点击运行就可以测试了。
如果需要要测试减法,再旁边再写一个减法的测试方法就可以了
/**
* @Author superMonkey
* @Date 2022/7/21 23:50
* @Description TODO
*/
public class CalculatorTest {
@Test
public void testAdd(){
Calculator calculator = new Calculator();
int result = calculator.add(2, 5);
System.out.println(result);
}
@Test
public void testSub(){
Calculator calculator = new Calculator();
int result = calculator.sub(2, 5);
System.out.println(result);
}
}
断言
在上述的测试方法中,如果测试后Idea的界面不出现红色就说明测试通过,但是通过结果来判断测试是否正确是不可靠的,如过方法内部写错,比如,add()方法内部变成了,a -b; 本来是加法,现在却变成了减法,使用Junit测试之后,是可以正常输出结果的,但是结果其实是不正确的。这个时候就需要使用断言。
@Test
public void testAdd(){
Calculator calculator = new Calculator();
int result = calculator.add(2, 5);
/**
* 断言就是我先判断方法允许的结果是什么样子,和实际方法的输出做对比。
* 如果相同,Idea出现绿色,不同出现红色。
* 下面就是我断言结果是 7 ,但是如果result不是7就是说明add()方法错了。
*/
Assert.assertEquals(7, result);
System.out.println();
}
@Before,@After
@Before , @After是Jnuit提供的两个注解
@Before:在所用的测试方法执行之前需要准备的资源。
@After:在所有的测试方法执行之后需要释放的资源。
public class CalculatorTest {
@Before
public void init() {
System.out.println("初始话测试需要的资源。。");
}
@Test
public void testAdd(){
Calculator calculator = new Calculator();
int result = calculator.add(2, 5);
Assert.assertEquals(7, result);
System.out.println();
}
@After
public void close() {
System.out.println("关闭测试中使用到的资源");
}
}
标签:int,Calculator,单元测试,public,result,测试,Test,Junit 来源: https://www.cnblogs.com/superMonkey3306/p/16511726.html