java中的Junit单元测试

什么是测试??

 

 

测试的分类??

黑盒测试:不需要些代码,给输入值,看程序是否能够输出期望的值
白盒测试:需要写代码,关注程序的具体的执行流程

 

 

 Junit单元测试-百合测试

 

我们以前的测试:

要测试这个类的方法ok不

public class Calculator {
    public int add(int a,int b){
        return a + b;
    }

    public int sub(int a,int b){
        return a - b;
    }
}

 

/**
 * 以前的测试:
 *      创建对象去一个个调用方法。
 *  缺点:
 *      一个main方法只能测试一个功能,要注释掉之前的代码
 */
public class CalculatorTest {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();

        int re = calculator.add(1, 23);
        System.out.println(re);

        int sub = calculator.sub(23, 1);
        System.out.println(sub);
    }
}

 

使用junit测试方法框架后

/**
 * 步骤:
 *      1定义一个测试类(测试用例),
 *          测试类名=被测试的类名Test CalculateorTest
 *          测试类所在的包名:xxx.xx.xx.test   cn.quan.test
 *      2定义测试方方法:
 *          方法名:test测试的方法名   testAdd()
 *          返回值:void
 *          参数列表:空参
 *       3给方法加注解@Test---使方法独立运行
 *       4判定结果:
 *          一般我们会使用断言操作来处理结果:
 *              Assert.assertEquals(期望的结果,运算的结果)
 */

 

public class CalculatorTest {
    
    @Test
    public void testAdd(){
        System.out.println("done");
        Calculator calculator = new Calculator();
        int add = calculator.add(1, 34);
        System.out.println(add);

        //断言  断言结果为 35
        Assert.assertEquals(34,add);
    }

    @Test
    public void testSub(){
        Calculator calculator = new Calculator();
        int sub = calculator.sub(1, 4);
        System.out.println(sub);
        Assert.assertEquals(-3,sub);
    }
}

运行第一个测试结果:---断言不成功

 

 

运行第二个测试结果:---断言成功

 

 

 

 

@Before

修饰的方法会在测试方法之前被自动执行

@After

修饰的方法会在测试方法执行之后自动被执行

 

例子:

public class CalculatorTest {

    /**
     * 初始化方法:
     * 用于资源申请,所有测试方法在执行之前都会先执行方法
     */
    @Before
    public void init(){
        System.out.println("统一开始");
    }

    /**
     * 释放资源:
     * 在所有测试方法执行完后,都会自动执行改方法
     */
    @After
    public void close(){
        System.out.println("统一结束了");
    }

    @Test
    public void testSub(){
        Calculator calculator = new Calculator();
        int sub = calculator.sub(1, 4);
        System.out.println(sub);
        System.out.println("Test指定之中");
        Assert.assertEquals(-3,sub);
    }
}

输出结果:

统一开始
-3
统一结束了

 

 

 

 

 

 

posted @ 2020-09-06 14:17  小丑quan  阅读(584)  评论(0)    收藏  举报