当前位置: 首页 > 知识库问答 >
问题:

如何为特定方法中的特定日志语句编写JUnit测试用例

符佐
2023-03-14

如何为写在服务或控制器类中的方法中的日志语句编写JUnit测试用例。

共有1个答案

郎成龙
2023-03-14

您可以尝试OutputCaptureExtension,它将捕获系统打印出的所有内容。输出系统。错误。例如:

@ExtendWith(OutputCaptureExtension.class)
public class MyTest {

    @Test
    public void theTest(CapturedOutput output) {
        FooService fooService = new FooService();
        fooService.doSomthing();

        assertThat(output.getOut()).contains("bar");
    }

}

然后它将期望fooService。doSomthing()将向系统打印一些包含单词“bar”的日志语句。输出

 类似资料:
  • 有没有更简单的方法来完成我想要的?如果这是最好的方法,那么我做错了什么?

  • 问题内容: 我正在尝试为我的简单类生成hashCode()方法,但是我什么也没用。我将不胜感激任何帮助。我已经实现了equals()方法,该方法如下所示,并且还想知道是否需要实现compareTo()方法。我已经导入了java.lang.Character以使用character.hashCode(),但它似乎不起作用。 提前致谢… 正在给我java.lang.Comparable转换错误的com

  • 我正在尝试创建我的第一个测试。我必须证明一个方法返回一个ContextLambda类型,我正在使用assertSame函数测试它,但是我的测试失败了,我不知道用什么assert来测试这个,用assertEquals也失败了。我的测试是这样的:

  • 我有一个程序,显示与名称和用户需要输入他们的字段。我怎么测试这个? AssertionError:JSON路径“$.FirstName”处没有值,异常:JSON不能为null或空 我的测试: storetest.java

  • 问题内容: 我想用JUnit测试以下方法: 坦白说,我想出的唯一一件事就是基本上将相同的逻辑复制到测试中。当然,这可以防止方法被意外破坏,但是听起来有点违反直觉。 有什么更好的方法来测试此方法? 问题答案: 在单元测试中,您可以更改属性的值: 然后,您可以测试/调用您的方法以使用断言检查其返回的内容。 为了更容易设置System属性并在测试完成时取消设置该属性(从而促进测试隔离,自我约束),可以使

  • 我有一个测试类,其中我有大约10个单元测试用例。在本文中,我创建了一个mock方法,它只在10个测试用例中的2个中有用。 因此,从技术上讲,我希望对8个测试用例执行方法,并对其中2个测试用例进行模拟。 有没有办法做到这一点?