跳至主要內容
javaweb - JUnit1

JUnit单元测试1

单元测试

在很多情况下,我们的项目可能会很庞大,不可能每次都去完整地启动一个项目来测试某一个功能,这样显然会降低我们的开发效率,因此,我们需要使用单元测试来帮助我们针对于某个功能或是某个模块单独运行代码进行测试,而不是启动整个项目,比如:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
        func1();
        func2();
        func3();
    }
    
    private static void func1() {
        System.out.println("我是第一个功能");
    }

    private static void func2() {
        System.out.println("我是第二个功能");
    }

    private static void func3() {
        System.out.println("我是第三个功能");
    }
}

codejavawebJUL大约 4 分钟
javaweb - JUnit2

JUnit单元测试2

断言工具 Assertions

JUnit提供了非常多的断言操作,相比JUnit 4,它们都被封装在一个新的Assertions类中

这些断言操作基本上都是用于判断某个测试结果是否符合我们的预期情况

值判断 Assertions.assertEquals

其中最简单的就是判断结果是否等于某个值

Assertions.assertEquals(expected, actual, message)


codejavawebJUL大约 5 分钟
javaweb - JUnit2

JUnit单元测试3

生命周期

@BeforeAll @AferAll @BeforeEach @AfterEach

其中 @BeforeAll 必须是static方法

我们可以自由设定某些操作在测试开始之前或之后执行,比如测试前的准备工作或是测试后的收尾工作:

@Test
public void test1() {
    System.out.println("我是测试方法1");
}

@BeforeAll  //使用BeforeAll必须为static方法
public static void start() {
    System.out.println("我是测试前必须要执行的准备工作");
}

codejavawebJUL大约 7 分钟
javaweb - JUL日志2

JUL日志系统2

日志核心内容

核心部分 Handler

日志打印的核心部分:Handler,它用于处理我们的日志内容打印

ConsoleHandler | FileHandler | SocketHandler

JDK为我们提供了很多种类的Handler用于多种不同类型的日志打印,比较常见的就是打印到控制台,当然我们也可以打印到一个日志文件中,名字一般为xxx.log这种格式。


codejavawebJUL大约 3 分钟
javaweb - JUL日志3

JUL日志系统3

日志继承关系

RootLogger

JUL中Logger之间存在父子关系,这种父子关系类似于继承,我们可以通过Logger的getParent方法来获取其父Logger对象:

Logger logger = Logger.getLogger(Main.class.getName());
System.out.println(logger.getParent());

codejavawebJUL大约 2 分钟
javaweb - JUL日志4

JUL日志系统4

日志默认配置

Properties 格式

Properties格式的文件是Java的一种配置文件,我们之前在学习Mybatis的时候学习了XML,但是我们发现XML配置文件读取实在是太麻烦,那么能否有一种简单一点的配置文件呢?

此时就可以使用Properties文件,它的格式如下:

name=Test
desc=Description

codejavawebJUL大约 2 分钟
javaweb - JUL日志5

JUL日志系统5

自定义日志格式

新建一个类,来继承Formatter,通过修改对应的format函数来实现自定义

每一个Handler都可以配置一个对应的Formatter来决定日志打印的格式,除了官方为我们提供的两种默认格式外,我们也可以自定义我们想要的日志打印格式。

我们只需要继承Formatter类,就可以创建一个自定义的日志格式处理逻辑了:

public class MyFormatter extends Formatter {
    @Override
    public String format(LogRecord record) {
        return "我是自定义日志格式";
    }
}

codejavawebJUL大约 3 分钟
javaweb - JUL日志1

JUL日志系统

JDK为我们提供了一个自带的日志框架,位于java.util.logging包下,我们可以使用此框架来实现日志的规范化打印,使用起来非常简单:

public class Main {
    public static void main(String[] args) {
        // 首先获取日志打印器,名称随意
        Logger logger = Logger.getLogger("test");
        // 调用info来输出一个普通的信息,直接填写字符串即可
        logger.info("我是普通的日志");
    }
}

codejavawebJUL大约 4 分钟