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

смог решить эту проблему, добавив wait для просмотра списка. – srinivasv

ответ

3

Ваша переменная count рассчитывается один раз в начале вашей программы, а затем никогда не обновляется. Это означает, что когда вы сравниваете его с 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(); 
}