【问题标题】:Junit 5 testing toString()Junit 5 测试 toString()
【发布时间】:2021-02-19 15:00:56
【问题描述】:

我最近开始搞乱 Junit,现在我想检查我的方法是否返回预期的字符串。就是不知道怎么弄

这是我的测试方法;`

@Test
void toStringTest(){

    Voetbalclub schoonhoven = new Voetbalclub("Schoonhoven");
    String expected = "Schoonhoven 2 1 1 0 0";

    schoonhoven.verwerkResultaat('g');
    schoonhoven.verwerkResultaat('w');
    assertEquals(schoonhoven, expected.equals("Schoonhoven 2 1 1 0 0"));

    System.out.println(schoonhoven);


}`

Ps:我知道我的代码正在检查它是否在同一个内存位置,这显然不是。 也尝试了 .equals(),但仍然得到相同的结果。

任何帮助将不胜感激。

【问题讨论】:

  • 如果您想提供更多信息,请不要在评论中发布,请编辑您的问题并在此处发布。

标签: java junit tostring


【解决方案1】:
@Test
void toStringTest(){
    Voetbalclub schoonhoven = new Voetbalclub("Schoonhoven");
    String expected = "Schoonhoven 2 1 1 0 0";

    schoonhoven.verwerkResultaat('g');
    schoonhoven.verwerkResultaat('w');
    assertEquals(schoonhoven, expected.equals("Schoonhoven 2 1 1 0 0"));

    System.out.println(schoonhoven);
}

老实说,这段代码并没有多大意义。您的代码实际检查的是您的 schoonhoven 变量是否等于布尔值,显然不是。

@Test
void toStringTest(){
    Voetbalclub schoonhoven = new Voetbalclub("Schoonhoven");
    String expected = "Schoonhoven 2 1 1 0 0";

    schoonhoven.verwerkResultaat('g');
    schoonhoven.verwerkResultaat('w');
    assertEquals(expected, schoonhoven.toString());
}

这将验证 schoonhoven.toStrign() 的结果是否等于预期的字符串。

Here 你会找到更多信息。你传递的参数是:

  1. 预期的对象
  2. 实际对象

【讨论】:

  • 当然Voetbalclub.toString()需要为此正确实现
  • @Lino 确实如此,但由于它是对 toString 的测试,我认为我们可以假设它已经实现
  • @Stultuske 感谢您抽出宝贵时间回答我的问题,我大约 2 周前才开始学习 Java。我一天比一天好,爱这里的人们和社区。​​span>
【解决方案2】:

很难准确地看出你想测试什么,但我会试着猜测。 schoonhoven 是您代码中的一个对象。据我所知,它有一个名为verwerkResultaat(char param) 的方法。在有意义的测试中,您想检查该方法是否按预期工作。因此,如果该方法例如返回 String 类型的内容,您可以执行以下操作:

    Voetbalclub schoonhoven = new Voetbalclub("Schoonhoven");

    assertEquals(schoonhoven.verwerkResultaat('g'), "Schoonhoven 2 1 1 0 0");
    assertEquals(schoonhoven.verwerkResultaat('w'), [some other result of type String]);

希望对您有所帮助。您还可以分享您的 Class Voetbalclub 的实现,这样我就可以给您一个工作示例。

【讨论】:

    【解决方案3】:

    断言等于

    如果你想测试两个对象的相等性,你有以下方法

    assertEquals(expected, actual)
    

    在你的情况下,它会是

    assertEquals(expected, schoonhoven.toString());
    

    assertEquals() 的两个组件应该相同。 还有其他类型的assert,你可以找到here

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2022-08-20
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2018-07-29
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多