Ответ 1
Как обнаружили njk2 и TomaszRykala, используя android.support.v4.util.Pair вместо android.util.Pair исправляет эту проблему.
Я хочу, чтобы модуль тестировал статический метод типа 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[]
качестве параметров конструктора в коде на первом месте.
Как обнаружили njk2 и TomaszRykala, используя android.support.v4.util.Pair вместо android.util.Pair исправляет эту проблему.