Junti单元测试
## 测试分类
黑盒测试,白盒测试
黑盒测试,不需要写代码,给输入值,看程序是否能够输出期望的值
白盒测试,需要写代码的,关注程序的具体执行流程
Junit使用
是白盒测试
    ### 步骤
        #### 1,定义一个测试类(测试用例)
建议:
•           测试类名:被测试的类名Test
•           包名:xxx.xxx.xx.test
        #### 2,定义测试方法:最好可以独立运行
建议:
        方法名:test测试的方法名
        返回值:viod
        参数:空参
        #### 3,建议加@Test注释(加这个得加上junit依赖)
    #### 4,判断结果,
控制台 红的失败
绿的成功。
这里的话,一般用断言操作来处理
代码:
Assert.assertEquals(期望结果,运算结果)
public class Junit {
 public long add(long a , long b){
     return a+b;
 }
}
public class Test1 {
 @Test
 public void yunsuan(){
     ---->这里 Assert.assertEquals(4, new Junit().add(1, 2));
 }
}
控制台结果:
java.lang.AssertionError: 
预期:4
实际:3
<点击以查看差异>
两个注解
初始化方法:
用于所有资源申请,所以测试方法在执行前都会先执行该方法
加上注解
@Before
释放资源的方法:
在所有测试方法执行完后,都会自动执行该方法
加上注解
@After
反正就是
先在测试方法(Test注解)前执行有Before注解方法,在测试方法(Test注解)后执行After注解的方法
这些都是自动执行的
提醒:
用其他方法调用测试方法的时候,测试方法就是普通方法。
在直接编码时,所有测试方法都会走一遍,来个例子吧
public class Test1 {
    int b=0;
    static  Test1 t=new Test1();
    
    public long add(long a , long b){
        return a+b;
    }
    public long jianfa(long a , long b){
        return a-b;
    }
    public long chengfa(long a ,long b){
        return a*b;
    }
    
    @Before
    public void before(){
        System.out.println("我先执行,算个1-1的减法吧:1-1="+t.jianfa(1,1));
    }
    
    @Test
    public void yunsuan(){
        System.out.println("测试第一次加法对不对:2是否等于1+2:"+(2==t.add(1,2)));
        b++;
        if (b!=10){
            t.yunsuan2();
        }
    }
    
    @Test
    public void yunsuan2(){
        System.out.println("测试第二次加法对不对:2是否等于1+1:"+(2==t.add(1,1)));
        b++;
        if (b<=20){
           t.yunsuan();
        }
    }
    @After
    public void after(){
        System.out.println("我最后执行个2*3的乘法:2*3="+t.chengfa(2,3));
    }
}
以上代码会把@Test1跑完,再跑@Test2,运算结果会是这样

 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号