0

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 です。したがって、問題。

しかし、なぜnull値が0番目の位置に挿入されているのかわかりません。解決策を教えてください。

4

1 に答える 1

4

sharedLevel クラスで、次のように変更します。

for(int i=0; i <= sharefirstlevel.Actualvalues.length; i++)

に:

for(int i=0; i < sharefirstlevel.Actualvalues.length; i++)

カウンターは 0 から始まるため、配列の長さより短くする必要があります。

于 2013-08-22T16:43:14.073 に答える