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点击下载