具有相同字符串的 JUnit 断言错误

JUnit Assertion error with identical strings

我正在尝试制作一个测试用例来检查 Dropwizard Metric Meter 名称: 这是代码:

@Test
public void getMeterName(){
  String metricsPrefix = "com.company.team";
  String tagSupplied = "tenant.db.table";
  String expectedMeterName = "com.company.team.tenant.db.table";

  assertSame(expectedMeterName,MetricRegistry.name(metricsPrefix,tagSupplied));
}

这是我遇到的错误:

java.lang.AssertionError: expected same:<com.company.team.tenant.db.table> was not:<com.company.team.tenant.db.table>
Expected :com.company.team.tenant.db.table
Actual   :com.company.team.tenant.db.table

我在这里错过了什么?

What am I missing here?

您正在测试的字符串相等但不是同一个对象。

您正在使用 assertSame 而您应该使用 assertEquals

这类似于使用==比较字符串的错误。

(另请参阅:How do I compare strings in Java?

使用 assertEquals() 而不是 assertSame(),因为您不能对字符串使用 assertSame()。 .参考这个