Затмение: бесконечность против JUnit: кодировка символов

Я использую Infinitest в Eclipse, и у меня есть странное явление в связи с 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 правильно запустить этот тест. Может кто-нибудь помочь мне здесь?

1 ответ

Решение

Вы должны сказать до бесконечности, что он должен использовать кодировку UTF-8 для запуска тестов.

Просто добавьте файл в свой проект Eclipse: "infinitest.args". В этом файле добавьте следующее:

-Dfile.encoding=UTF-8

И так, inifinitest будет использовать UTF-8

Руководство пользователя: http://infinitest.github.com/doc/user_guide.html частности раздел "Настройка параметров JVM".

Другие вопросы по тегам