我正在使用 Robotium 自动化产品。在一个模块中,我必须验证派生的数据。
为此,我正在使用以下代码:
class sharefirstlevel {
public void A {
for(int k=1;k<=4;k+=2) {
ExpectedResult = solo.clickInList(k);
for (int i = 0; i < ExpectedResult.size(); i++) {
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
solo.scrollListToLine(0, k);
ExpectedResult=solo.clickInList(1);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
ExpectedResult = solo.clickInList(2);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
Log.d("xyz","Values of the Strings are"+Actualvalues[i].toString());
}
}
}
}
它将选择的值提取到数组中。
现在,当它派生时,要验证我正在使用此代码:
class sharedLevel {
public void B {
for(int i=0; i <= sharefirstlevel.Actualvalues.length; i++) {
Log.d("xyz","Values are:"+sharefirstlevel.Actualvalues[i]);
actual=solo.searchText(sharefirstlevel.Actualvalues[i]);
assertEquals(expected, actual);
Log.d("xyz","Values are:"+sharefirstlevel.Actualvalues[i]);
}
}
}
这些值被提取到数组中,打印时,正确的值被插入到数组中,甚至被传递给另一个类。
但是junit测试用例的执行只会成功1到2次。但从那时起我得到一个空指针异常。请帮我。我正在修复!
插入到 ArrayList 本身时的第一个值为 null。这是代码:
for(int k=1;k<=4;k+=2)
{
ExpectedResult = solo.clickInList(k);
for (int i = 0; i < ExpectedResult.size(); i++)
{
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
solo.scrollListToLine(0, k);
ExpectedResult=solo.clickInList(1);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
ExpectedResult = solo.clickInList(2);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
Log.d(" ","Values of the Strings are"+Actualvalues[i].toString());
}
}
在 for 循环本身的第一行插入的值是 null。因此问题。
但我不明白,为什么在第 0 位插入空值。请帮我解决问题。