2017-02-02 8 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>

UPDATE:私はdebuggたときに、これが通ることを私は見てい 私はテストケースを実行すると、それが唯一の失敗。

+0

コードを追加してください。変数 'solo'は何か、' deleteNote() '、' clickInList() '、' clickLongInList() '、' clickOnText() 'メソッドは何か分かりません。 – Winter

+0

はリストビューの待機を追加することでこれを解決できました。 – srinivasv

答えて

3

countcount変数は、プログラムの開始時に1回計算され、その後は更新されません。つまり、最後に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(); 
} 
関連する問題