Меня интересует мнение, практика и рекомендуемые лучшие практики использования длинных строк настройки в модульных тестах.
Предпочитаете ли вы объявлять тесты как встроенные, близкие к вашему тесту или выводить их в файл где-нибудь?
Обратите внимание, я говорю о тестовых ресурсах, которые относятся к одному модульному тесту, поэтому не обязательно подходят для использования в методе setup ().
Я вижу плюсы и минусы обоих - я фанат того, чтобы все важные для вашего теста вещи были как можно ближе к тесту, однако несколько строк настройки строки могут быстро стать любопытными в методе теста.
Например, я пишу быстрый парсер для удаления неиспользуемых объявлений css из файлов. Я хочу проверить, что с учетом конкретной входной строки, правильный текст удаляется. Мой тест стал очень шумным со всей конкатенацией строк.
public void removesStyleFromText()
{
StyleCleaner styleCleaner = new StyleCleaner();
String source = ".presentInFileOne {\r\n" +
"}\r\n" +
"\r\n" +
".presentInFileTwo {\r\n" +
" bottom-corners-rounded : false;\r\n" +
"}\r\n" +
".notUsed {\r\n" +
"}\r\n" +
"";
String actual = styleCleaner.removeDeclaration(source , "notUsed");
String expected = ".presentInFileOne {\r\n" +
"}\r\n" +
"\r\n" +
".presentInFileTwo {\r\n" +
" bottom-corners-rounded : false;\r\n" +
"}\r\n";
assertEquals(expected , actual);
}
Учитывая этот пример, я мог бы экстернализовать фактическое / ожидаемое во внешние файлы, но это также делает тест немного неясным относительно того, для чего он фактически тестируется.
Мысли