JAVA入坑之Junit测试与断言

一、软件测试

1.1相关概念

软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

1.2软件测试分类

- 单元 vs 集成测试
- 白盒 vs 黑盒测试
- 自动 vs 手动测试
-回归测试
-压力测试

1.3  单元 与集成测试

JAVA入坑之Junit测试与断言_第1张图片

1.4 白盒 vs 黑盒测试

JAVA入坑之Junit测试与断言_第2张图片

1.5自动 vs 手动测试

JAVA入坑之Junit测试与断言_第3张图片

 1.6回归测试

JAVA入坑之Junit测试与断言_第4张图片

二、断言

Java断言是一种用于在代码中检查和验证程序员预期的结果的语句,它可以在测试和调试阶段启用,也可以在生产环境中禁用。断言的语法是:

assert condition; // 如果条件为true,继续执行;如果条件为false,抛出AssertionError异常 assert condition : message; // 如果条件为false,抛出AssertionError异常,并附带指定的消息

断言的作用是帮助程序员发现和排除代码中的逻辑错误,提高代码的质量和稳定性。断言不应该用于处理可恢复的错误,而应该用于捕获不可能发生的情况。断言也不应该影响程序的正常逻辑,即使断言被禁用,程序也应该能够正常运行。

package org.example;

public class MainTest {
    public static void main(String[] args) {
        test(-10); // 调用test方法,传入-10作为参数
    }
    public static void test(int age) {
        // assert关键字,再加一个布尔表达式,当表达式结果为false时,程序就会退出
        // 并抛出一个AssertionError,所以断言是error级别的
        assert age >= 0 : "不能输入这种不合理的年龄啊"; // 满足条件则继续运行
        System.out.println("继续执行,输入的年龄是:" + age); // 输出年龄
    }
}

三、Java记录日志

Java记录日志是一种用于在代码中记录和输出程序运行情况的方法,它可以帮助程序员调试、分析、优化和审计系统。Java记录日志的方式有很多种,主要有以下几种:

  • 使用System.out.println()或者System.err.println()方法直接在控制台打印消息。这是最简单的方式,但也是最不推荐的方式,因为它不能控制日志的级别、格式、输出目标等,也不利于日志的管理和维护。
  • 使用java.util.logging包中的日志框架。这是Java自带的日志框架,它提供了Logger、Handler、Formatter、Filter等类来实现日志的记录、输出、格式化和过滤等功能。它支持将日志输出到文件、控制台、网络等不同的目标,也支持定义不同的日志级别和过滤条件。
  • 使用第三方的日志框架,如Log4j、Logback、SLF4J等。这些日志框架都是基于Apache开源社区开发的,它们都比java.util.logging包中的日志框架更加强大和灵活,提供了更多的功能和特性,如异步日志、多线程日志、性能优化、配置文件等。

java.util.logging为例

package org.example;

import java.util.logging.Level;
import java.util.logging.Logger;

public class MainTest1 {
    public static void main(String[] args) {
        Logger logger = Logger.getGlobal();
        logger.setLevel(Level.INFO);
        logger.finest("finest log 777777777"); // 去掉msg:,直接传入字符串参数
        logger.finer("finer log 666666666"); // 同上
        logger.fine("fine log 5555555555"); // 同上
        logger.config("config log 4444444444"); // 同上
        logger.info("info log 33333333"); // 同上
        logger.warning("warning log 222222222"); // 同上
        logger.severe("severe log 1111111111"); // 同上
    }
}

二、 Junit测试

Junit是一个用于Java编程语言的单元测试框架,它在测试驱动开发中起到了重要的作用,它是一个被称为xUnit的单元测试框架家族的一员,它起源于JUnit1。JUnit可以帮助Java开发者编写和运行可重复的测试用例,它是由Erich Gamma和Kent Beck最初开发的,它是xUnit架构的一个实例。顾名思义,它用于对一小块代码进行单元测试

配置

  
            junit
            junit
            4.12
        

代码 

package org.example;

public class Triangle {
    public boolean judgeEdges(int a, int b, int c) {
        boolean result = true;
        // 边长非负性
        if (a <= 0 || b <= 0 || c <= 0) { // 修正了括号和逻辑运算符的错误
            return false;
        }
        // 两边和大于第三边
        if (a + b <= c || b + c <= a || c + a <= b) { // 修正了数学表达式和逻辑运算符的错误
            result = false;
        }
        return result;
    }
}
package org.example;

import org.junit.Test;

import static org.junit.Assert.*; // 导入Assert类的所有静态方法,自JDK1.5引入
public class TriangleTest {
    @Test
    public void test() {
        assertEquals(true, new Triangle().judgeEdges(3, 8, 5)); // 添加括号和参数,调用judgeEdges方法
        //assertEquals(false, new Triangle().judgeEdges(1, 2, 3)); // 同上,去掉标签
    }
}

你可能感兴趣的:(junit)