【问题标题】:JUnit test without variables [duplicate]没有变量的JUnit测试[重复]
【发布时间】:2018-02-26 01:51:04
【问题描述】:

我正在尝试 JUnit 测试,但我不确定如何使用它。 我有一个类,它的方法返回一个带有该方法名称的字符串。

public class Example {
    static void method1() {
        System.out.println("method1");
    }

    public static void main(String[] args) {
        method1();
    }
}

现在,我想用 JUnit 断言测试这个类,但由于没有变量,我不知道如何测试这段代码。

谁能告诉我这个 JUnit 测试的完整代码?

【问题讨论】:

  • 这个特定代码的答案是修补流并捕获输入。但这可能不是您的真实代码,您可能不只是试图捕捉打印流内容。展示一些真实的代码怎么样,这样你就可以得到真实问题的真实答案。

标签: java junit


【解决方案1】:

这很难进行单元测试,因为您将依赖项硬编码到您的对象中。该依赖项是系统输出控制台。从对象中删除该依赖项并将其移动到应用程序的消费代码中:

public class Example {
    static String method1() {
        return "method1";
    }

    public static void main(String[]args) {
        System.out.println(method1());
    }
}

现在您可以通过简单地断言该方法返回的值是您所期望的值来测试该方法。

这里的目标是从您的代码中删除依赖项。系统控制台输出之类的东西必须在某个地方,但是随着代码变得越来越复杂,您可以将它们隔离在可模拟接口后面。你的业务逻辑,你想要单元测试的东西,应该没有依赖关系。

【讨论】:

  • 好的。我知道问题出在我的原始代码中,所以让我们简化一下。我有一个只有一个方法的类,这个方法应该返回一个带有这种方法名称的 String 类型。您将如何将其编码为我原始代码的替代方案,以便我可以对该类进行简单的 JUnit 测试?请您提供一个包含该类完整代码的示例吗?谢谢。
  • @Mr.Dax:所以您只是在问如何编写 JUnit 测试?在线提供了各种示例和教程。在这种情况下,测试要做的就是调用方法并将结果与​​预期结果进行比较。
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 2013-02-19
  • 2014-04-23
  • 2010-09-26
  • 1970-01-01
相关资源
最近更新 更多