相等的字符串未通过测试

时间:2019-06-17 14:51:28

标签: java unit-testing junit

我的单元测试有一个问题,其中期望的字符串和结果字符串完全相同,但是测试失败并说它们是不同的。 这是测试的代码:

import org.junit.Test;
import java.text.NumberFormat;
import java.util.Locale;

@Test
public void convertFromDouble() {
    double value = 123456.789;
    Locale locale = Locale.forLanguageTag("pt-PT");
    String expected = "123 456,789";

    final NumberFormat numberInstance = NumberFormat.getNumberInstance(locale);
    numberInstance.setMinimumFractionDigits(0);
    numberInstance.setMaximumFractionDigits(10);

    Assert.assertEquals(expected, numberInstance.format(value));
}

我从NumberConverter.convert(value, locale)获得的值等于我的expected变量。我尝试调试代码,发现两个值也具有完全相同的字符数(11)。我看到的唯一的差异(也是我认为引起错误的原因)是,expected变量中的SPACE字符表示为字节32,而在获得的结果中,其表示为- 96。知道为什么会这样吗?

编辑:要注意,该测试仅在我从Java 8升级到Java 11时才开始失败。

0 个答案:

没有答案