Eclipse: infinitest与JUnit:字符编码



我在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正确运行此测试。有人能帮我一下吗?

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

在Eclipse项目中添加一个文件:"infinitest.args"。在这个文件中,添加以下内容:

-Dfile.encoding=UTF-8

因此,infinitest将使用UTF-8

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

相关内容

  • 没有找到相关文章

最新更新