java junit 语句,java – Junit测试日志语句
我有一个类似于foo的
java 8应用程序:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Foo {
private final Logger log = LoggerFactory.getLogger(Foo.class);
public String something() {
log.info("doing foo test");
return "test";
}
}
我正在编写一个JUnit(Junit 4.11)测试用例,如下所示:
public class FooTest {
private Foo foo;
@Before
public void setUp() throws Exception {
foo = new Foo();
}
@Test
public void testSomething() {
String result = foo.something();
assertEquals(result,"test");
}
}
我的目标是编写一个测试用例,测试某个方法的返回值和日志语句,以确保记录某些内容.我花了几个小时在网上搜索如何设置junit来测试日志语句.我试过this,this,this和this的方法无济于事.
我不知道这是不是我做错了什么.但这是基于最后一个例子的代码:
public class FooTest {
private Foo foo;
@Mock private Appender appender;
@Captor private ArgumentCaptor captor;
@Before
public void setUp() throws Exception {
foo = new Foo();
MockitoAnnotations.initMocks(this);
Logger.getRootLogger().addAppender(appender);
}
@After
public void tearDown() throws Exception {
Logger.getRootLogger().removeAllAppenders();
}
@Test
public void testSomething() {
String result = foo.something();
assertEquals(result,"test");
verify(appender).doAppend(((LoggingEvent) captor.capture()));
LoggingEvent loggingEvent = (LoggingEvent) captor.getValue();
assertEquals(loggingEvent.getRenderedMessage(), "doing foo test");
}
}
但是当我运行它时,我收到以下错误:
Wanted but not invoked:
appender.doAppend();
-> at .testSomething(FooTest.java:22)
Actually, there were zero interactions with this mock.
有没有更简单的方法来实现我想要的?如果这是最好的方式那么我做错了什么?
java junit 语句,java – Junit测试日志语句相关推荐
- java 计算器 junit测试_Java Junit测试
使用junit做测试目的是尽量早的发现程序的bug,一个bug隐藏的时间越久,修复他的代价就越大. 1.Junit简介: Junit最初是由Erich Gamma 和 Kent Beck 编写的一个回 ...
- JAVAWEB(三)Java与数据库(JUnit、JUL、Maven、图书管理系统)
使用JUnit进行单元测试 !!!!!! 前排提醒:我们要将pom.xml中的junit版本改成4.12及以上的! !!!!!! 首先一问:我们为什么需要单元测试? 随着我们的项目逐渐变大,比如我们之 ...
- JMeter工具:常用协议脚本开发(BeanShell Sampler, Debug Sampler, FTP/Java/JDBC请求, JUnit request, SOAP/XML-RPC)
目录 1. BeanShell Sampler 1.1 BeanShell Timer:BeanShell定时器 1.2 BeanShell PreProcessor:BeanShell前置处理器 1 ...
- java which语句,java入门之表达式、语句、块
表达式.语句和块是java语言的基础.运算符(Operator)用来计算值,它和变量(Variable)构成了表达式(Expression),表达式是语句(Statement)的核心部分,而语句又构成 ...
- java if and_Java运算符-if分支语句
运算符 // 除号:/ int num1 = 12; int num2 = 5; int result1 = num1 / num2; System.out.println(result1); //2 ...
- 【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗?
写在前面 最近跳槽找工作的朋友确实不少,遇到的面试题也是千奇百怪,这不,一名读者面试时,被面试官问到了一个直击灵魂的问题:if 语句执行完else语句真的不会再执行吗?这个奇葩的问题把这名读者问倒了! ...
- IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持
近日,IDEA 2022.1的Beta 2版本发布了!下面我们一起来看看对于我们Java开发者来说,有哪些重要的更新内容. Java增强 随着Java 18的正式发布,IDEA也在该版本中迅速跟进. ...
- Java SE7新特性之try-with-resources语句
try-with-resources语句是一个声明一个或多个资源的 try 语句.一个资源作为一个对象,必须在程序结束之后随之关闭. try-with-resources语句确保在语句的最后每个资源 ...
- java最基础语句,Java基础:Java语句
Java语句 -------关键语句介绍 一.while语句 一般形式: while(条件表达式) { 语句体--- } 执行过程: 条件表达式为真,执行语句体.否则,退出! 二.do while语句 ...
最新文章
- 47分钟,BERT训练又破全新纪录!英伟达512个GPU训练83亿参数GPT-2 8B
- oracle hr样本模式,Oracle 样本模式 HR
- java学习(50):子类继承会优先调用父类的构造器
- django-分页的演示
- Java面试:Java面试总结PDF版
- CUDA内存分配、释放、传输,固定内存
- svm工具箱快速入手简易教程
- Qt VS中设置.ui文件的生成的.h的目录
- 朴素贝叶斯分类算法(Naive Bayesian classification)
- 浅谈游戏《Hollow Knight空洞骑士》
- Arm 中国原 CEO 被“罢免”,新指定“官方”:已获员工大力支持
- oracle设置默认角色,oracle的用户和角色管理
- Git学习8:Git分支操作
- Kubernetes 如何重塑虚拟机
- select后面的子查询
- Python计算:sympy解数学方程
- 特殊数字符号大全,word 数学符号
- 多路温度采集控制系统(2)需求分析
- android 4.5屏幕,屏幕大也不怕 4.5吋起大屏续航手机推荐
- Java毕设项目-商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现
热门文章
- SPI接口的FPGA实现(一)——SPI接口的相关基础知识
- 一建二建证书讲解宣传
- 中国国际视听大会即将在北京召开,国产8K影视品牌齐聚
- 新版PageOffice为什么用弹出窗口的方式打开文件
- quic java_HTTP3.0(QUIC的实现机制)
- ABAQUS软件实训(九):实体结构静力学分析
- mac不同窗口间切换的快捷键
- php调用新浪短链接API转短链接
- 我在北京,我不在北京
- MTK Android 9.0(Android P) + kernel-4.9 默认关闭DM Verity 和secure boot 解决无法adb remount的问题