android.util.Pair содержит String [] в качестве параметров в androidTest, но значение null в (unit) test

Я хочу, чтобы модуль тестировал статический метод типа UtilsClass, который возвращает Pair<String[], String[]>. Внутри этого метода я вставляю пару String [] в свой конструктор, например. final Pair<String[], String[]> pair = new Pair<>(new String[] {"Hello", "World"}, new String[] {"£33", "£44"}); и ожидают, что этот объект будет возвращен.

Когда я тестирую этот метод, я получаю ненулевой объект Pair, но с его полями first = null и second = null. Когда я запускаю один и тот же тестовый код в тесте Instrumentation-type, поля заполняются должным образом. Я вижу, что в последнем случае public Pair(F first, S second) { конструктор public Pair(F first, S second) { где я помещаю точку отладки и заданы поля, но не в модульном тесте.

Я ищу объяснение, почему это так, и если я должен избегать передачи String[] качестве параметров конструктора в коде на первом месте.

Ответы

Ответ 1

Как обнаружили njk2 и TomaszRykala, используя android.support.v4.util.Pair вместо android.util.Pair исправляет эту проблему.