2013-04-05 3 views
4

В моей Android макет вид приложения, у меня есть <RadioGroup>, который содержит два <RadioButton>:(Robotium) Как выбрать RadioButton в RadioGroup

<RadioGroup 
    android:id="@+id/my_radio_group" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

     <RadioButton 
     android:id="@+id/yes_btn" 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/yes" 
     /> 

    <RadioButton 
     android:id="@+id/no_btn" 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/no" 
     /> 
</RadioGroup> 

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

Solo solo = new Solo(getInstrumentation(), getActivity()); 
... 
solo.clickOnRadioButton(R.id.yes_btn); //I expect the "yes" radio button will be selected 

Я ожидал, что приведенный выше тестовый код будет выбрать кнопку Radio «YES», но при запуске, он поднимет ошибку:

junit.framework.AssertionFailedError: 2131427675 RadioButtons are not found! 
at com.jayway.android.robotium.solo.Waiter.waitForAndGetView(Waiter.java:417) 
at com.jayway.android.robotium.solo.Clicker.clickOn(Clicker.java:374) 
at com.jayway.android.robotium.solo.Solo.clickOnRadioButton(Solo.java:1063) 
... 

Как я могу выберите один <RadioButton> в <RadioGroup>, а затем Robotium ??

ответ

2

Try ниже код

RadioButton rb = (RadioButton) solo.getView(R.id.yes_btn); 
solo.clickOnView(rb); 

solo.clickOnRadioButton() принимает индекс вида в качестве аргумента, в то время как вы передаете идентификатор ресурса.

+0

Спасибо, это работает! – Mellon