相关疑难解决方法(0)

Mockito:如何在方法中创建的对象上调用方法?

我是Mockito的新手.

鉴于下面的类,我如何使用Mockito来验证someMethod在调用之后是否被调用了一次foo

public class Foo
{
    public void foo(){
        Bar bar = new Bar();
        bar.someMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想进行以下验证通话,

verify(bar, times(1)).someMethod();
Run Code Online (Sandbox Code Playgroud)

在哪里bar是一个模拟的实例Bar.

java junit unit-testing mockito

291
推荐指数
6
解决办法
47万
查看次数

如何在log4j2中创建自定义Appender?

正如在这个链接中所讨论的:如何在log4j中创建自己的Appender?

为了在log4j 1.x中创建自定义appender,我们必须扩展AppenderSkeleton类并实现其append方法.

类似地我们如何在log4j2中创建自定义appender,因为我们没有扩展AppenderSkelton类,所有其他appender扩展AppenderBase类.

java logging log4j log4j2

48
推荐指数
2
解决办法
4万
查看次数

如何使用junit测试log4j是否记录了警告?

我正在测试一个方法,当出现问题时记录警告并返回null.
就像是:

private static final Logger log = Logger.getLogger(Clazz.class.getName());
....
if (file == null || !file.exists()) {
  // if File not found
  log.warn("File not found: "+file.toString());
} else if (!file.canWrite()) {
  // if file is read only
  log.warn("File is read-only: "+file.toString());
} else {
  // all checks passed, can return an working file.
  return file;
}
return null;
Run Code Online (Sandbox Code Playgroud)

我想测试junit是否发出了警告,除了返回null之外,在所有情况下(例如找不到文件,文件是只读的).
有任何想法吗?
谢谢,asaf :-)


UPDATE

我对Aaron的回答的实现(加上彼得的评论):

public class UnitTest {
...

@BeforeClass
public static void setUpOnce() {
  appenders = new Vector<Appender>(2);
  // …
Run Code Online (Sandbox Code Playgroud)

java logging junit unit-testing log4j

47
推荐指数
4
解决办法
5万
查看次数

对SLF4J日志消息进行单元测试的最佳方法是什么?

我正在使用slf4j,我想对我的代码进行单元测试,以确保在某些条件下生成警告/错误日志消息.我宁愿这些是严格的单元测试,所以我不想从文件中提取日志配置以测试日志消息的生成.我正在使用的模拟框架是Mockito.

unit-testing mocking slf4j mockito

37
推荐指数
6
解决办法
3万
查看次数

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";
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在编写一个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");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的目标是编写一个测试用例来测试something方法的返回值日志语句,以确保记录某些内容.我花了几个小时搜索网络来弄清楚如何设置junit来测试日志记录语句.我试过这个,这个,这个这个方法无济于事.

我不知道这是不是我做错了什么.但这是我的代码基于最后一个例子:

public class FooTest {
    private Foo …
Run Code Online (Sandbox Code Playgroud)

java logging junit unit-testing slf4j

9
推荐指数
1
解决办法
2万
查看次数

如何在log4j2中为自定义记录器编写单元测试

我已经创建了一些自定义记录器,其中一些级别覆盖了Log4J2中的自定义记录器.我已按照http://logging.apache.org/log4j/2.x/manual/customloglevels.html上的指南进行操作.

我需要创建一些单元测试来验证事件是否在正确的自定义级别和配置上注册.

我很欣赏任何关于如何开始的提示.非常感谢.

java logging unit-testing log4j log4j2

2
推荐指数
2
解决办法
5350
查看次数

标签 统计

java ×5

unit-testing ×5

logging ×4

junit ×3

log4j ×3

log4j2 ×2

mockito ×2

slf4j ×2

mocking ×1