我在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正确运行此测试。有人可以在这里帮我吗?

最佳答案

您需要无限地说,它必须使用UTF-8字符集来运行测试。

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

-Dfile.encoding=UTF-8


因此,infinite会使用UTF-8

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

07-26 04:50