Вы используете IDE? Если это так, то извините, что я скучный старый пердун, но я бы посоветовал сохранить ваши тесты на Java.
Причина этого в том, что IDE, по моему опыту, не имеют или плохо поддерживают работу с гетерогенными кодовыми базами. Подумайте о переименовании метода в коде вашего приложения. В любой приличной среде IDE вы делаете это как рефакторинг, и все сайты вызовов в коде Java изменяются в соответствии с новым именем. Однако звонить на сайты на других языках не буду (насколько я знаю). Если ваши тесты не в Java, это означает, что теперь у вас есть куча неработающих тестов, которые нужно найти и исправить. Только потому, что вы переименовали метод! Многие виды рефакторингов поднимут эту проблему. Вы также можете страдать от невозможности совместного использования отладчика в тесте и коде приложения, выполнения анализа покрытия кода или выполнения других полезных действий.
Использование нетипизированного языка, такого как Javascript или Groovy, как он обычно используется, также по своей сути означает, что ваши тесты не могут делать утверждения о типах и, следовательно, не могут тестировать весь спектр вещей, которые могут пойти не так в Java , Например, в тесте Java я могу написать:
List<CharSequence> words = foo.getWords();
И чтобы этот тест даже компилировался, getWords
должен возвращать List<CharSequence>
. Если кто-то изменит его на List<String>
, тест прекратится. Это позволяет использовать тест для обеспечения разработки API.
Таким образом, другой подход может заключаться в использовании Java и поиске способов работы с большими строками и сравнениями с большими компонентами.
Самый простой способ иметь дело с большими строками - это, вероятно, поместить их в отдельные текстовые файлы, которые являются ресурсами classpath. Затем вы можете написать простой служебный метод для загрузки именованного ресурса и прочитать его в строку.
Я не знаю точно, что включает в себя ваша "большая проверка полей bean-компонентов", но если она проверяет значения в полях bean-компонентов, возможно, глубоко вложенных, то некоторые простые служебные методы могут сильно помочь. Возможно, вы могли бы прочитать спецификации полей и их ожидаемые значения из файлов свойств, а затем рефлексивно извлечь и проверить их?