2015-06-22 4 views
1

Я использую robotium для написания тестов для нашего приложения для Android. Я хочу выполнить команду, если существует определенный вид или текст. Было бы идеально, чтобы проверить, если/кнопка вид существует, но я открыт для проверки, если logout текст существует, аВыполнение команды, если существует вид

My (неправильно) псевдокод будет что-то вроде этого:

if solo.getView("logoutButton")) //if the logout button exists 
    solo.clickOnView(solo.getView("logoutButton")); //click it 
end 

I 'm не знаком с robotium или андроидом и был бы признателен за любую проницательность.

ответ

3

насчет старого доброго findViewById:

View view = solo.getCurrentActivity().findViewById(R.id.logout_button); 
Assert.assertNotNull(view); 
solo.clickOnView(view); 

Edit:

import android.test.ActivityInstrumentationTestCase2; 
import android.view.View; 
import com.robotium.solo.Solo; 
import junit.framework.Assert; 

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { 

    private Solo solo; 

    public MainActivityTest() { 
     super(MainActivity.class); 
    } 

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

    public void testView() throws Exception { 
     View view = solo.getCurrentActivity().findViewById(R.id.tv); 
     Assert.assertNotNull(view); 
     solo.clickOnView(view); 
    } 

    @Override 
    public void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 
    } 

} 
+0

Что происходит, если представление не существует 'solo.clickOnView (вид)'? Будет ли он двигаться дальше? – theartofbeing

+0

Кроме того, получение 'невозможно разрешить символ' для' R' и 'Assert' - есть ли какой-то импорт, который мне нужно сделать? – theartofbeing

+0

@ theartofbeing, если вид не существует, утвердите, и весь ваш тест завершится неудачно во второй строке. Он остановится. Я обновлю свой вопрос с помощью своего тестового кода, возможно, это поможет вам. – Simas