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

时间:2015-11-03 15:28:50

标签: java android generics android-testing android-espresso

我想对UtilsClass类型的静态方法进行单元测试,该方法返回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[]作为构造函数params传递。

1 个答案:

答案 0 :(得分:21)

正如njk2和TomaszRykala发现的那样,使用android.support.v4.util.Pair而不是android.util.Pair修复了这个问题。