Junit 5 测试 toString()

Junit 5 testing toString()

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

这是我的测试方法;`

@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(),结果还是一样。

非常感谢任何帮助。

@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. 实际对象

很难看出你到底想测试什么,但我会尝试猜测。 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 的实现,这样我就可以给您一个工作示例。

断言等于

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

assertEquals(expected, actual)

在你的情况下,它将是

assertEquals(expected, schoonhoven.toString());

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