Junit单元测试(笔记)

一.Junit介绍

Junit是一个Java语言的单元测试框架,简单理解为可以用于取代java的(部分)main方法。Junit属于第三方工具,需要导入jar包后使用。

二.Junit的基本使用(重点)

a.在当前模块下创建lib文件夹
在这里插入图片描述
b.把junit的jar包,拷贝到lib的文件夹中
在这里插入图片描述
c.把jar包添加到图书馆中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.itheima.demo01Junit;

import org.junit.Test;

/*
    junit的作用:可以单独的运行某一个方法(对方法进行测试)
    使用步骤
        1.导入junit的jar包
        2.在要运行的方法上边,添加一个@Test注解(需要导包)
        3.点击方法左边的绿色三角或者鼠标右键点击方法,选择Run 方法,运行方法
          点击类左边的绿色的三角或者鼠标右键点击类名,选择Run 类名,可以运行类中所有被@Test修饰的方法
          鼠标右键点击模块,选择'Run All Tests',可以运行模块中所有类里被@Test修饰的方法
 */
public class Demo01Junit {
    @Test
    public void show01(){
        System.out.println("show01方法");
    }

    @Test
    public void show02(){
        System.out.println("show02方法");
    }

    @Test
    public void show03(){
        System.out.println("show03方法");
    }
}

在这里插入图片描述

三.Junit的注意事项

在这里插入图片描述

package com.itheima.demo01Junit;

import org.junit.Test;

/*
    Junit的注意事项
        1.没有添加@Test注解的方法,不能使用Junit运行的
        2.Junit只能运行public修饰的,没有参数,没有返回值的非静态方法
 */
public class Demo02Junit {
    //1.没有添加@Test注解的方法,不能使用Junit运行的
    public void show01(){
        System.out.println("Demo02Junit show01方法");
    }

    //java.lang.Exception: Method show02() should be public 方法show02应该被public修饰
    //@Test
    private void show02(){
        System.out.println("Demo02Junit show02方法");
    }

    //java.lang.Exception: Method show03 should have no parameters 方法show03应该没有参数
    //@Test
    public void show03(int a){
        System.out.println("Demo02Junit show03方法"+a);
    }

    //java.lang.Exception: Method show04() should be void 方法show04应是void修饰
    //@Test
    public String show04(){
        System.out.println("Demo02Junit show04方法");
        return "hello";
    }

    //java.lang.Exception: Method show05() should not be static 方法show05应该没有static修饰
    //@Test
    public static void show05(){
        System.out.println("Demo02Junit show05方法");
    }

    //定义一个可以使用Junit运行的方法
    @Test
    public void method(){
        //调用哪些不能直接使用junit运行的方法
        show01();
        show02();
        show03(10);
        String s = show04();
        System.out.println(s);
        show05();
    }
}

四.Junit相关注解

在这里插入图片描述

package com.itheima.demo01Junit;

import org.junit.*;

/*
    Junit相关的注解:
    @Test:
        用来修饰方法,该方法是单元测试的方法,可以单独运行方法
    @Before:在...前边
        用来修饰方法,该方法会在每一个测试方法执行之前[自动]执行一次。
    @After:在...后边
        用来修饰方法,该方法会在每一个测试方法执行之后[自动]执行一次
     @BeforeClass:
        用来静态修饰方法,该方法会在所有测试方法之前[自动]执行一次,而且只执行一次
     @AfterClass:
        用来静态修饰方法,该方法会在所有测试方法之后[自动]执行一次,而且只执行一次
     注意:
        1.@Before,@After,@BeforeClass,@AfterClass:这四个注解修饰的方法不能单独执行
        2.@Before,@After,@BeforeClass,@AfterClass:这四个注解修饰的方法会[自动]在@Test修饰方法前后运行
 */
public class Demo03Junit {
    @Test
    public void show01(){
        System.out.println("show01方法");
    }

    @Test
    public void show02(){
        System.out.println("show02方法");
    }

    @Test
    public void show03(){
        System.out.println("show03方法");
    }

    @Before
    public void before(){
        System.out.println("before方法");
    }

    @After
    public void after(){
        System.out.println("after方法");
    }

    @BeforeClass
    public static void beforeClass(){
        System.out.println("beforeClass方法");
    }

    @AfterClass
    public static void afterClass(){
        System.out.println("afterClass方法");
    }
}

执行的结果:

beforeClass方法
before方法
show03方法
after方法
before方法
show01方法
after方法
before方法
show02方法
after方法
afterClass方法

备注:

Junit常用注解(Junit5.x版本)

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

五.断言(了解)

  • 作用
    预测判断某个条件一定成立, 如果条件不成立,则直接奔溃
  • 使用方式
    两个参数: 第一个代表预判值, 第二个代表实际结果
    如果预判正确就会绿色通过
    如果预判错误就会红色失败
    Assert.assertEquals(期望结果 , 实际结果);
package com.itheima.demo01Junit;

import org.junit.Assert;

/*
    作用
      预测判断某个条件一定成立,  如果条件不成立,则直接崩溃(抛异常)

    使用方式
        Assert.assertEquals(期望结果 , 实际结果);
        两个参数: 第一个代表预判值,  第二个代表实际结果
         如果预判正确就会绿色通过
         如果预判错误就会红色失败
 */
public class Demo04Junit {
    public static void main(String[] args) {
        //断言正确,无任何结果
        Assert.assertEquals(true,"helloworld".contains("hello"));

        /*
            AssertionError:断言异常
                expected:<true> 期望的是true
                but was:<false> 得到的实际结果是false
         */
        //Assert.assertEquals(true,"helloworld".contains("你好"));

        Assert.assertEquals(10,Integer.parseInt("10"));
        
        /*
            AssertionError: 断言异常
                expected:<10>期望的是10 
                but was:<11>得到的实际结果是11
         */
        Assert.assertEquals(10,Integer.parseInt("11"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭子在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值