Я автоматизирую продукт с помощью 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-ю позицию. Пожалуйста, помогите мне с решениями.