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

如何在JUnit中测试在控制台打印的void方法?

都阳辉
2023-03-14
public void print() {
    System.out.println("I printed dollars!");

}

     public void print() {
    System.out.println("I printed euro!");}
    public Valuta getValuta(String numeValuta){
    if(numeValuta == null){
        return null;
    }
    if(numeValuta.equalsIgnoreCase("dolar")){
        return new Dolar();
    }
    if(numeValuta.equalsIgnoreCase("euro")){
        return new Euro();
    }
    if(numeValuta.equalsIgnoreCase("lei")){
        return new Lei();
    }
    return null;
}
    FabricaBani fabrica = new FabricaBani();
    Valuta valuta = fabrica.getValuta("dolar");
    valuta.tipareste();
    assertEquals("I printed dollars!", valuta.print());

共有1个答案

桑坚成
2023-03-14

方法valuta不返回任何内容,这就是为什么valuta.print()不能是输出到控制台的字符串。

如果你想测试这个值,你可以重构你的方法返回字符串而不是输出它;然后在调用print()的方法中打印返回的字符串。

public String print() {
    return "I printed dollars!";
}

 public void print() {
  return "I printed euro!";
 }

然后,您将像这样调用打印输出到控制

System.out.println(valuta.print());
 类似资料:
  • 当我运行laravel黄昏测试时,cmd会显示很多控制台消息,例如: 我怎样才能防止这种情况?在测试时,它会在每一页中显示这一点

  • 我试图使用TDD(测试驱动开发)与。当我使用时,不会到控制台。 我正在使用来运行它。 似乎说默认情况下它应该工作:http://pytest.org/latest/capture.html 但是: 没有任何东西被打印到我的标准输出控制台(只是正常的进度和多少测试通过/失败)。 我正在测试的脚本包含打印: 在模块中,默认情况下打印所有内容,这正是我所需要的。但是,出于其他原因,我希望使用。 有人知道

  • 问题内容: 如何打印(在控制台),,等这个结构中Golang的? 问题答案: 要在结构中打印字段名称: 从包装中: 打印结构时,加号()添加字段名称 假设您有一个Project的实例(在’ ‘中) 文章JSON和Go将提供有关如何从JSON结构中检索值的更多详细信息。 此“按示例进行搜索”页面提供了另一种技术: 那会打印: 如果没有任何实例,则需要 使用反射 来显示给定结构的字段名称,如本例所示。

  • 如何在Golang中打印(在控制台中)该结构的、、等?

  • 问题内容: 我有一个充满void方法的Java类,我想进行一些单元测试以获得最大的代码覆盖率。 例如我有这种方法: 它的名字不好用是因为我翻译了代码以更好地理解。每种方法均会验证参数是否在某种程度上有效并且编写正确。 范例: 我的单元测试很好地涵盖了小的方法,因为我要求它们检查ErrorFile是否包含错误消息,但是我看不到如何测试方法checkIfValidElements,它什么也不返回或什么

  • 如何laravel打印出一些字符串在控制台时运行php工匠服务?我尝试了日志::信息,但它不工作。