列表<String> JUnit

List<String> JUnit

@Test
public void Test() {
    Tester rd = new Tester();

    Assert.assertSame(variable.getList(), ("banana, apple, pineapple"));
}

所以 variable.getList 会 return 一个列表,所以当我 运行 测试时会出现错误,因为 ["banana, apple, pineapple"] 与 "香蕉、苹果、菠萝”。 我怎样才能把 ("banana, apple, pineapple") 变成 ["banana, apple, pineapple"]??

首先,我将使用 assertEquals 来测试 相等性 (即使用 equals 方法)而不是 asssertSameidentity 的测试(即使用 == 运算符)。

其次,您需要将其包装在 List:

中,而不是像您当前拥有的字符串
Assert.assertEquals(variable.getList(), Collections.singletonList("banana, apple, pineapple"));

您可以使用列表而不是固定字符串。

final String[] expectedResult = new String[] { "banana", "apple", "pineapple" };
Assert.assertEquals(variable.getList(), Arrays.asList(expectedResult));

First of: assertSame 断言两个参数引用同一个对象(即等同于使用 ==)。这是几乎从来没有您想断言的。您更有可能想要使用 assertEquals().

其次,如果你想检查结果是否等于一个包含三个字符串对象的列表,那么构造一个类似 List.of:

的列表
Assert.assertEquals(variable.getList(), List.of("banana", "apple", "pineapple"));

如果您只能使用 Java 9 之前的 Java 版本,那么在这种情况下 Arrays.asList() 足以替代 List.of