2017-02-02 6 views
-4

목록의 텍스트 뷰를 어설 션하려고 할 때 어설 션이 실패하는 이유는 무엇입니까?어설 션 목록에있는 텍스트 뷰의 양을 주장하려고 시도하는 중 오류가 발생했습니다.

@Test 
public void testDeleteNote() throws Exception { 

    int count= getNoOfTextViews(); 
    // Checking if count is greater than 0. 
    if (count > 0) { 
     // Iterating count times 
     for (int i = 0; i < count; i++) 
     { 
      // Checking if count is even or odd. 
      if (i % 2 == 0) { 
       solo.clickInList(0); 
       deleteNote(); 
      } else { 
       // Clicking Long on the 1st item in the Notes List. 
       solo.clickLongInList(0); 
       // Clicking on Delete String. 
       solo.clickOnText(solo.getString(R.string.menu_delete)); 
       } 
    } 

    count = getNoOfTextViews(); 
    // Asserting all the text views are deleted. 
    assertEquals(0, count); 
} 

    public int getNoOfTextViews() { 
    // Getting the count of text views in the activity. 
    ArrayList<TextView> textView = solo.getCurrentViews(TextView.class, 
      solo.getCurrentViews(ListView.class).get(0)); 
    return textView.size(); 
} 

내가보고하고 실패는 다음과 같습니다

junit.framework.AssertionFailedError: expected:<0> but was:<1>

업데이트 : debugg 때이 전달하는 내가보고하고 내가 테스트 케이스를 실행할 때, 그것은 단지 실패합니다.

+0

코드를 추가하십시오. 변수 '솔로'가 무엇인지,'deleteNote()','clickInList()','clickLongInList()'및'clickOnText()'메소드는 무엇인지 알 수 없습니다. – Winter

+0

은 목록보기 대기를 추가하여이 문제를 해결할 수있었습니다. – srinivasv

답변

3

countcount 변수는 프로그램 시작시 한 번 계산 된 다음 결코 업데이트되지 않습니다. 즉, 마지막에 0과 비교할 때 이전 값이 계속 포함됩니다.

count = getNoOfTextViews(); 

또는 단순히

assertEquals(0, getNoOfTextViews()); 
+0

내 실수는 그것을 잘못 복사했습니다. 나는 assertEquals (0, getNoOfTextViews())를 사용하고있다; . 이 사건은 내가 디버깅 할 때 통과하고 내가 달릴 때 실패한다. – srinivasv

1

추가 목록보기 위해 대기 카운트를 복용하기 전에 :

은 당신이 할 수있는 일은 다시 메소드를 호출하여 카운트 변수를 업데이트합니다. 이로 인해 문제가 해결되었습니다.

감사합니다.

public int getNoOfTextViews() { 
    solo.waitForView(ListView.class,0,1000); 
    // Getting the count of text views in the activity. 
    ArrayList<TextView> textView = solo.getCurrentViews(TextView.class, 
      solo.getCurrentViews(ListView.class).get(0)); 
    return textView.size(); 
}