3

我在 Eclipse 中使用了infinitest,我有一个与 JUnit 相关的奇怪现象。

我有使用org.apache.http.HttpResponse.getEntity()和的代码org.apache.http.entity.StringEntity。JUnit 测试如下所示:

@Test
public void convertEncodedContentToString() throws UnsupportedEncodingException {
  HttpResponse httpResponseMock = Mockito.mock(HttpResponse.class);

  Mockito.when(httpResponseMock.getEntity()).thenReturn(new StringEntity("huiäöüß@€", HTTP.UTF_8));
  Assert.assertEquals("huiäöüß@€", parser.convertContentToString(httpResponseMock));
}

所有源文件都以 UTF-8 格式存储。

如果我让 JUnit 执行这个方法,它就可以正常工作。

然而,如果infinitest 运行这个测试,它会抱怨断言失败。

ComparisonFailure (expected:<hui[äöüß@€]> but was:<hui[äöüß@€]>) in ResponseBodyParserFactoryTest.convertEncodedContentToString

显然存在字符编码问题。

由于infinitest 几乎没有选项,我不知道如何帮助infinitest 正确运行此测试。任何人都可以在这里帮助我吗?

4

1 回答 1

6

您需要对infinitest 说它必须使用UTF-8 字符集来运行测试。

只需在 Eclipse 项目中添加一个文件:“infinitest.args”。在此文件中,添加以下内容:

-Dfile.encoding=UTF-8

因此, infinintest 将使用 UTF-8

用户指南: http: //infinitest.github.com/doc/user_guide.html特别是“设置 JVM 选项”部分

于 2012-07-22T23:02:39.827 回答