0


Java(十四)----Junit测试

1.1 Junit是什么

Junit是Java语言编写的第三方单元测试框架

1.2 单元测试概念

  • 单元:在Java中,一个类就是一个单元
  • 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行功能测试或业务逻辑测试。

1.3 Junit单元测试框架的作用

用来对类中的方法功能进行有目的的测试,以保证程序的正确性和稳定性。
能够让方法独立运行起来。

1.4 Junit单元测试框架的使用步骤

编写业务类,在业务类中编写业务方法。比如增删改查的方法
编写测试类,在测试类中编写测试方法,在测试方法中编写测试代码来测试。
测试类的命名规范:以Test开头,以业务类类名结尾,使用驼峰命名法
每一个单词首字母大写,称为大驼峰命名法,比如类名,接口名...
从第二单词开始首字母大写,称为小驼峰命名法,比如方法命名

比如业务类类名:ProductDao,那么测试类类名就应该叫:TestProductDao
测试方法的命名规则:以test开头,以业务方法名结尾
比如业务方法名为:save,那么测试方法名就应该叫:testSave

1.5 测试方法注意事项

  • 必须是public修饰的,没有返回值,没有参数
  • 必须使注解@Test修饰

1.6 如何运行测试方法

  • 选中方法名 --> 右键 --> Run '测试方法名' 运行选中的测试方法
  • 选中测试类类名 --> 右键 --> Run '测试类类名' 运行测试类中所有测试方法
  • 选中模块名 --> 右键 --> Run 'All Tests' 运行模块中的所有测试类的所有测试方法

1.7 如何查看测试结果

  • 绿色:表示测试通过
  • 红色:表示测试失败,有问题

1.8 Junit常用注解(Junit4.xxxx版本)常用于初始化对象赋值

  • @Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
  • @After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
  • @BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
  • @AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次。

1.9 Junit常用注解(Junit5.xxxx版本)

  • @BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
  • @AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
  • @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
  • @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。

1.10 Junit的使用

  • 示例代码
/**
 业务类:实现加减乘除运算
 */
public class Cacluate {
    /*
     业务方法1:求a和b之和
     */
    public int sum(int a,int b){
        return  a + b + 10;
    }
    /*
     业务方法2:求a和b之差
     */
    public int sub(int a,int b){
        return  a - b;
    }
}

public class TestCacluate {

    static Cacluate c = null;

    @BeforeClass // 用来静态修饰方法,该方法会在所有测试方法之前执行一次。
    public static void init(){
        System.out.println("初始化操作");
        // 创建Cacluate对象
        c = new Cacluate();
    }

    @AfterClass // 用来静态修饰方法,该方法会在所有测试方法之后执行一次。
    public static void close(){
        System.out.println("释放资源");
        c = null;
    }

   /* @Before // 用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
    public void init(){
        System.out.println("初始化操作");
        // 创建Cacluate对象
        c = new Cacluate();
    }

    @After // 用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
    public void close(){
        System.out.println("释放资源");
        c = null;
    }*/

    @Test
    public void testSum(){
        int result = c.sum(1,1);
        /*
            断言:预习判断某个条件一定成立,如果条件不成立,则直接奔溃。
            assertEquals方法的参数
            (String message, double expected, double actual)
            message: 消息字符串
            expected: 期望值
            actual: 实际值
         */
        // 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。
        Assert.assertEquals("期望值和实际值不一致",12,result);
        System.out.println(result);
    }

    @Test
    public void testSub(){
        // 创建Cacluate对象
        // Cacluate c = new Cacluate();

        int result = c.sub(1,1);
        // 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。
        Assert.assertEquals("期望值和实际值不一致",0,result);
        System.out.println(result);
    }
}
标签: java junit 单元测试

本文转载自: https://blog.csdn.net/MrDaKai/article/details/128352851
版权归原作者 YounG_photograph 所有, 如有侵权,请联系我们删除。

“Java(十四)----Junit测试”的评论:

还没有评论