2012-06-18 3 views
1

Когда я запускаю тест с Robotium, я использую утверждение, чтобы убедиться, что на странице есть определенный текст, но он терпит неудачу. Однако, когда я запускаю тест без утверждения, тест проходит. Почему это должно быть?Сбой Robotium

Вот мой код:

import com.jayway.android.robotium.solo.Solo; 
import android.test.ActivityInstrumentationTestCase2; 
import android.test.suitebuilder.annotation.Smoke; 

@SuppressWarnings("unchecked") 
public class ODPRobotiumTest extends ActivityInstrumentationTestCase2 { 

    private static final String TARGET_PACKAGE_ID = "com.gravitymobile.app.hornbill"; 
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.vzw.odp.LaunchActivity"; 

    private static Class<?>launcherActivityClass; 

    static{ 
     try{ 
      launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
     } catch (ClassNotFoundException e){ 
      throw new RuntimeException(e); 
     } 
    } 

    @SuppressWarnings({ "unchecked", "deprecation" }) 
    public ODPRobotiumTest() throws ClassNotFoundException{ 
     super(TARGET_PACKAGE_ID, launcherActivityClass); 
    } 

    private Solo solo; 

    @Override 
    protected void setUp() throws Exception{ 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    @Smoke 
    public void testLine1(){ 

     try { 
      assertTrue(solo.searchText("Easy to Find")) ; 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    } 
    @Smoke 
    public void testLine2(){ 


      try{ 
     solo.searchText("Hassle-Free"); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 

    } 
    @Smoke 
    public void testLine3(){ 




     solo.searchText("Trust"); 


    } 
    public void testLine4(){ 

     solo.searchText("Verizon Curated Wallpaper"); 


    } 
    public void testLine5(){ 

     solo.searchText("Taco's"); 

    } 
    @Override 
    public void tearDown() throws Exception{ 
     try{ 
      solo.finalize(); 
     }catch(Throwable e){ 
      e.printStackTrace(); 
     } 
     getActivity().finish(); 
     super.tearDown(); 
    } 
} 

Испытание в testLine1 является тест, который выходит из строя. Но, как я уже говорил, когда я не использую assertTrue и просто solo.searchTest («Легко найти»), тест пройдет. Я не понимаю.

Спасибо за помощь!

ответ

0

Я только что узнал содержимое, которое я пытаюсь проверить, это HTML. Так как Robotium не работает с HTML или любым другим веб-компонентом, он не проверяет текст, который я ищу.

Спасибо всем, кто предложил помощь!

2

Если вы ничего не утверждаете, ваш тест пройдет, потому что ничто не может потерпеть неудачу.

Очевидно, что текст, который вы ищете, отсутствует на экране, ваша конфигурация тестового бегуна неверна или вы даже не используете правильные механизмы для поиска.

+0

Очевидно, что это ужасный ответ. Если бы я мог, я бы проголосовал. Надеюсь, кто-то сделает это для меня. – BlackHatSamurai

+0

Почему это ужасный ответ? Вы спрашиваете, почему тест преуспевает без каких-либо утверждений. Вот почему он преуспевает. Никаких утверждений в тесте = тест не проходит. Ваше утверждение не может привести к его сбою. Вот почему он есть. –

+0

Утверждение очевидного не делает его хорошим ответом, и я не спрашивал, почему тест без утверждений не подводит. Я хочу знать, почему тест терпит неудачу, когда он должен проходить. Текст есть. – BlackHatSamurai