一、测试
- 黑盒测试:不需要写代码,不用关注代码的具体实现逻辑,只需要通过给定的输入值来获取输出值,查看是否符合预期即可
- 白盒测试:需要些代码,关注程序/代码的具体实现流程,通过给定的输入值来获取输出值,查看是否符合预期,Junit单元测试就是白盒测试的一种
二、 Junit单元测试
1. 使用步骤
-
定义一个测试类:测试类名建议定义为“被测试类名Test”,比如CalculatorTest。测试包结构如下
-
定义测试方法:为了使测试方法可以独立运行,需要给测试方法加上“@Test”,建议方法名定义为“xxxTest()”,比如addTest()
-
导入Junit依赖环境:直接在@Test位置“ALT+回车”
2. 代码演示
- 主类
package cn.java;
public class Calculator {
// 加法
public int add(int a, int b) {
return a + b;
}
// 减法
public int sub(int a, int b) {
return a - b;
}
}
- 测试类
package cn.test;
import cn.java.Calculator;
import org.junit.Test;
public class CalculatorTest {
// 测试add方法
@Test
public void addTest() {
Calculator c = new Calculator();
int result = c.add(1, 2);
System.out.println(result);
}
}
3. 断言
- 作用:判断运行结果是不是预期的值
package cn.test;
import cn.java.Calculator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
// 测试add方法
@Test
public void addTest() {
Calculator c = new Calculator();
int result = c.add(1, 2);
// 断言返回值为3
Assert.assertEquals(3, result);
}
}
4. @Before与@After
- @Before:初始化,用于资源申请,所有测试方法在执行之前都会先执行该方法
- @After:释放资源的方法,在所有测试方法执行完后,会自动执行该方法
package cn.test;
import cn.java.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
@Before
public void init(){
System.out.println("init....");
}
@After
public void close(){
System.out.println("end....");
}
// 测试add方法
@Test
public void addTest() {
Calculator c = new Calculator();
int result = c.add(1, 2);
System.out.println(result);
// 断言返回值为3
Assert.assertEquals(3, result);
}
}