首页 > 解决方案 > 确切的字符串值不匹配

问题描述

我在一个孤立的测试中调用以下内容。

此方法的输出为“50 000”。

我检查过了,没有空间可以修剪。(也尝试过修剪以防万一)。

当我执行相等检查时,测试失败说:

org.junit.ComparisonFailure: 
Expected :50 000
Actual   :50 000

为什么会这样?

这是我的方法。

import java.text.NumberFormat;

public String aaa() {
    String amt = "50000";
    Locale locale = new Locale("sv","SE");
    NumberFormat f = NumberFormat.getInstance(locale);
    amt = f.format(Long.parseLong(amt));
    return amt;
}

这是我的测试用例。

@Test
public void test() {
    assertEquals("50 000", myClass.aaa());
}

我在这里想念什么?为什么他们不相等?

标签: java

解决方案


结果中的空格不是普通的空格字符,而是不间断的空格字符。试试这个,看看测试是否成功:

assertEquals("50\u00a0000", myClass.aaa());

推荐阅读