Android Test Project - чтение файла ресурсов для тестирования простого Java-объекта - PullRequest
2 голосов
/ 29 февраля 2012

Настройка моего проекта

  • Библиотечный проект A Содержит fooJSONParser, подобный этому:

    public class fooJsonParser {
      ...
      // Constructor using the input-stream
      public DPNodeJsonParser(InputStream inputJsonStream) {
        // Constructor
      }
    
      /**
       * Method that has to be executed once the class is instantiated to parse
       */
      public parsedObject parseObj() {
        // Parses and prints the info
      }
    
  • Приложение Project B , в котором используется Библиотечный проект A

Задача

Теперь я создал тестовый проект tester для тестирования приложения Project B и добавил тестовый набор для тестирования класса fooJsonParser. Каждый раз, когда появляются новые данные json, я обновляю метод синтаксического анализа и хочу проверить его с помощью проекта tester и посмотреть, правильно ли анализируется синтаксический анализатор вместо установки, запуска приложения и перехода к экрану, где этот новый Данные JSON будут использоваться. Для этого у меня есть файл json в папке assets тестера 1035 *. Но я не уверен, как я могу прочитать файл JSON. Я думаю, что это как-то связано с MockContext, но я не был уверен, как его использовать, поскольку документация говорит, что все методы не работают.

Может ли кто-нибудь предложить решение / предоставить пример для чтения файла ресурсов из простого тестового примера Java-объекта ?

Я довольно новичок в среде тестирования Android. Дайте мне знать, если что-то неясно. Я могу добавить больше информации.

Ответы [ 3 ]

3 голосов
/ 01 марта 2012

Предположим, у вас есть папка ресурсов, содержащая json_sample.txt. Если я вспомню, вы можете получить ее из POJO следующим образом:

String testFile = "json_sample.txt";
InputStream in = this.getClass().getClassLoader().getResourceAsStream(testFile);

Я помню, я делал это в одном из моих проектов давным-давно, не используйте, если вам нужно добавить ресурсы / в качестве префикса testFile, попробуйте.

UPDATE:
Я только что понял, что папка активов больше не добавляется автоматически в путь сборки проекта, вероятно, начиная с r14. Я вполне уверен, что это было раньше (так же, как Res папка). Файл должен находиться под путем сборки, чтобы код работал, вам нужно вручную добавить папку ресурсов в путь сборки проекта, щелкнуть правой кнопкой мыши ваш проект - Путь сборки - Настроить путь сборки, добавить папку активов в качестве папок источника при сборке. дорожка. или переместите файл в папку res.

Файловая система Android довольно ограничена, и я сомневаюсь, что существует другой способ чтения файла утверждений из POJO.

2 голосов
/ 03 марта 2012

Я решил это следующим образом:

  • Создал настройку, как объяснено здесь
  • Расширен InstrumentationTestCase вместо TestCase. У InstrumentationTestCase есть метод getInstrument(), с помощью которого я получил доступ к контексту Instrumentation (проект тестового приложения).
0 голосов
/ 08 апреля 2015

Начиная с Android Gradle Plugin версии 1.1, вам не нужно использовать Instrumentation для загрузки файлового ресурса.

Я написал здесь как это сделать с модульным тестом POJO кейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...