- 黑盒测试(功能测试)vs白盒测试(结构测试)
- Junit单元测试属于白盒测试
package msb.javase.oop.javase_220223_c_junit;
public class Calculator {
public int add(int a, int b){
return a+b;
}
public int sub(int a, int b){
return a-b;
}
}
package msb.javase.oop.javase_220223_c_junit;
public class Test {
public static void main(String[] args) {
Calculator cal = new Calculator();
int x = cal.add(1,2);
System.out.println(x);
int y = cal.sub(2,1);
System.out.println(y);
}
}
一般我们把测试和业务逻辑分离,分离为不同的包
测试类的名字:*Test
测试方法的定义–》这个方法可以独立运行,不依托于main方法
- 名字:testAdd() testSub() 见名知意
- 参数:无参 独立运行
- 返回值:void 独立运行
测试方法定义之后,必须加入注解@Test,才可以独立运行
导入Junit的依赖环境
package msb.javase.oop.javase_220223_c_junit.test;
import msb.javase.oop.javase_220223_c_junit.logic.Calculator;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd(){
System.out.println("he");
Calculator cal = new Calculator();
int result = cal.add(20,20);
System.out.println(result);
}
@Test
public void testSub(){
System.out.println("him");
Calculator cal = new Calculator();
int result = cal.sub(20,20);
System.out.println(result);
}
}
即使结果为绿色效果,也不意味着测试通过,因为代码逻辑可能出问题
解决:加入断言
package msb.javase.oop.javase_220223_c_junit.test;
import msb.javase.oop.javase_220223_c_junit.logic.Calculator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd(){
Calculator cal = new Calculator();
int result = cal.add(20,20);
Assert.assertEquals(20,result);
}
@Test
public void testSub(){
Calculator cal = new Calculator();
int result = cal.sub(20,20);
Assert.assertEquals(0,result);
}
}
TODO