首页 > 解决方案 > 具有相同字符串的 JUnit 断言错误

问题描述

我正在尝试制作一个测试用例来检查 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

我在这里想念什么?

标签: javatestingjunitdropwizardmetrics

解决方案


我在这里想念什么?

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

你正在使用assertSame你应该使用的地方assertEquals

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

(另请参阅:如何在 Java 中比较字符串?


推荐阅读