Я пытаюсь выполнить модульное тестирование класса, который выполняет синтаксический анализ SAX и создает объект.
Этот класс принимает строку в качестве параметра, представляющего URL-адрес документа в Интернете, анализирует его и затем создает объект на основе содержимого.
Я не хочу, чтобы модульные тесты действительно имели доступ к сети, поэтому я хотел бы иметь несколько тестовых XML-файлов для анализа. Однако я не могу понять, как получить к ним доступ из моих AndroidTestCases. Я не хочу включать тестовые файлы с реальным приложением, я хочу, чтобы они были в тестовом проекте (это отдельный проект, так как это норма для тестов Android из того, что я мог собрать - из-за необходимости иметь собственный AndroidManifest .xml, для одного).
Одним из способов было бы поместить файлы XML в каталог ресурсов тестового проекта, я могу прочитать их, используя getContext().getAssets().open(filename
) в InputStream
в тестовом примере, но мой класс ожидает строку URL. Я бы предпочел не предоставлять InputStream этому классу вместо текущей строки URL. Я могу протестировать только синтаксический анализ, сделав два метода, один из которых принимает строку, а другой - Inputstream, и протестировать второй, но как я могу затем проверить тот, который просто принимает строку?
Как мне разработать свой класс и / или тесты, чтобы обойти эту проблему?