android.util.Pair 在 androidTest 中将 String[] 作为参数,但在(单元)测试中为 null

android.util.Pair holds String[] as parameters in androidTest but null in (unit) test

我想对 UtilsClass 类型的静态方法进行单元测试,即 returns 和 Pair<String[], String[]> 。在这个方法中,我将一对 String[] 注入到它的构造函数中,例如。 final Pair<String[], String[]> pair = new Pair<>(new String[] {"Hello", "World"}, new String[] {"£33", "£44"}); 并期望返回此对象。

当我对该方法进行单元测试时,我得到了一个非空的 Pair 对象,但它的字段为 first = nullsecond = null。当我 运行 在 Instrumentation 类型测试中使用相同的测试代码时,字段会正确填充。我可以看到,在后一种情况下,输入了我放置调试点的构造函数 public Pair(F first, S second) { 并设置了字段,但不是在单元测试中。

我正在寻找为什么会出现这种情况的解释,以及我是否应该首先避免在代码中将 String[] 作为构造函数参数传递。

正如 njk2 和 TomaszRykala 发现的那样,使用 android.support.v4.util.Pair 而不是 android.util.Pair 可以解决这个问题。