2013-08-22 2 views
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]); 
     } 
    } 
} 

배열로 추출지고 인쇄시, 적절한 값이 배열 inseted지고 심지어 건네지고 : 파생 때

지금,이 코드를 사용하고 검증하는 다른 반으로.

그러나 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 번째 위치에 삽입되는 이유는 무엇입니까? 해결책을 찾도록 도와주세요. 당신의 sharedLevel 클래스에서

+1

귀하의 logcat은 무엇이라고 말합니까? – wyoskibum

+0

Junit 테스트 케이스 결과 : Null 포인터 예외 – Priety

답변

4

은 변경 :

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

에 :

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

당신의 카운터가 0에서 시작하기 때문에,해야 덜 배열의 길이보다.