我想单元测试一个UtilsClass类型的静态方法,该方法返回一个Pair<String[], String[]>
。在这个方法中,我将一对String[]注入到它的构造函数中,例如final Pair<String[], String[]> pair = new Pair<>(new String[] {"Hello", "World"}, new String[] {"£33", "£44"});
,并期望返回这个对象。
当我对这个方法进行单元测试时,我得到一个非null的Pair对象,但它有字段first = null
和second = null
。当我在Instrumentation类型测试中运行相同的测试代码时,字段会正确填充。我可以看到,在后一种情况下,我放置调试点的构造函数public Pair(F first, S second) {
被输入并设置了字段,但在单元测试中没有。
我正在寻找为什么会出现这种情况的解释,以及我是否应该首先避免在代码中传递String[]
作为构造函数参数。
正如njk2和TomaszRykala发现的那样,使用android.support.v4.util.Pair而不是android.util.Pair修复了这个问题。