Затмение: бесконечность против 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".