单元测试和日志技术

1.Junit使用的基本流程

<1>将junit的jar包导入到工程中
<2>编写测试方法该测试方法必须是公共的无参数无返回值的非静态方法在测试方法上使用@Test注解标注该方法是一个测试方法
<3>选中测试方法右键通过junit运行该方法
Junit点击下载

2.Junit常用的三个注解

测试注解【没有参数和返回值,要想测试返回值,则用该方法调用返回值方法即可】
@Before【Before运行在Test之前】
@Test【有两个则会执行两遍】
@After【After运行在Test之后】

public class Demo1 {
    @Test//测试注解[没有参数和返回值] 有两个则会执行两遍
    public void sum() {
        System.out.println("Test执行");
    }
    @Test//测试注解[没有参数和返回值]
    public void show2() {
        System.out.println("Test执行");
    }

    @Before//测试注解[没有参数和返回值]
    public void before() {
        System.out.println("Before运行在Test之前");
    }

    @After//测试注解[没有参数和返回值]
    public void after() {
        System.out.println("After运行在Test之后");
    }
}

执行结果:
-------------------------------------------------------
Before运行在Test之前
Test执行
After运行在Test之后
Before运行在Test之前
Test执行
After运行在Test之后
3.Assert.assertEquals[断言、断点方法]
public class Demo1 {
    @Test//测试注解[没有参数和返回值] 有两个则会执行两遍
    public void sum() {
        System.out.println("Test执行");
        int sum = 10 + 20;
        //断言:测试结果和预期值是否一致
        Assert.assertEquals(sum,40);
    }

    @Before//测试注解[没有参数和返回值]
    public void before() {
        System.out.println("Before运行在Test之前");
    }

    @After//测试注解[没有参数和返回值]
    public void after() {
        System.out.println("After运行在Test之后");
    }
}

运行结果:
-----------------------------------------------------
Before运行在Test之前
Test执行
After运行在Test之后

java.lang.AssertionError: 
Expected :30
Actual   :40
4.Log4j设置日志

设置代码

public class Demo1 {
    //使用log4j的api来获取日志的对象
    //弊端:如果以后我们更换日志的实现类,那么下面的代码就需要跟着改//不推荐使用
    //private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger.getLogger(Demo1.class);

    //使用slf4j里面的api来获取日志的对象
    //好处:如果以后我们更换日志的实现类,那么下面的代码不需要跟着修改//推荐使用
    public static final Logger LOGGER = LoggerFactory.getLogger(Demo1.class);
    public static void main(String[] args) {
        //1.导入jar包
        //2.编写配置文件
        //3.在代码中获取日志的对象
        //Logger logger = LoggerFactory.getLogger(Demo1.class);
        // 4.按照日志级别设置日志信息
       /* LOGGER.debug("Debug级别的日志");
        LOGGER.info("info级别的日志");
        LOGGER.warn("warn级别的日志");
        LOGGER.error("error级别的日志");*/

        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个整数");
        String number = sc.nextLine();
        //类型转换
        try {
            int result = Integer.parseInt(number);
            LOGGER.info("类型转换成功"+ result);
        }catch (NumberFormatException e){
            LOGGER.info("类型转换失败,请录入一个整数");
        }
    }
}


//配置文件
log4j.rootLogger=INFO,my,fileAppender
#日志级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。
从左往右依次降低,默认是info 不会输出debug 和 all

### direct log messages to my ###
# 往控制台输出
log4j.appender.my=org.apache.log4j.ConsoleAppender
# 立即刷新
log4j.appender.my.ImmediateFlush = true
# 打印流
log4j.appender.my.Target=System.err
# 日志输出模式可以灵活指定
log4j.appender.my.layout=org.apache.log4j.PatternLayout
# 日志输出模式细节
log4j.appender.my.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n

# 往文件输出
log4j.appender.fileAppender=org.apache.log4j.FileAppender
# 立即刷新
log4j.appender.fileAppender.ImmediateFlush = true
# 消息追加到文件中,不被覆盖
log4j.appender.fileAppender.Append=true
# 消息输出到指定文件中
log4j.appender.fileAppender.File=D:/log4j-log/log4j-log.log
# 日志输出模式可以灵活指定
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
# 日志输出模式细节
log4j.appender.fileAppender.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n


打印结果:
------------------------------------------------------
输入一个整数
20.5
2021-07-17 14:49:28,605 main  INFO Demo1:35 - 类型转换失败,请录入一个整数

配置文件图解:
在这里插入图片描述
Log4J点击下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陪雨岁岁年年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值