Robolectric是否能够断言已经调用了方法?

时间:2011-10-07 19:16:27

标签: android unit-testing android-2.1-eclair robolectric

我的布局中定义了一个按钮,如下所示:

<Button
                android:id="@+id/speakButton"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:text="@string/speak"
                android:onClick="speak"
                />

onClick绑定到我的活动中的方法,例如:

public void speak(View v)
    {
        // Do my stuff here
    }

使用Robolectric,我能够为该活动创建一个简单的测试类,我想知道是否可能有一个调用该按钮的测试,并确保我的活动中的方法被调用OK

(我的应用程序中有一大堆按钮,因此打算进行测试以确保它们正确连接,除非有人提出任何建议,为什么我不打扰)

@RunWith(RobolectricTestRunner.class)
public class MyActivityTest
{
    private MyActivitymActivity;
    private Button speakButton;

    @Before
    public void setUp() throws Exception
    {
        mActivity = new MyActivity();
        mActivity.onCreate(null);

        speakButton = (Button) mActivity.findViewById(com.jameselsey.apps.androidsam.R.id.speakButton);

    }

    @Test
    public void testButtonsVisible()
    {
        assertThat(speakButton.getVisibility(), equalTo(View.VISIBLE));        
    }

    @Test
    public void buttonsInvokeIntendedMethods()
    {
        // Unsure how to implement this test
    }
}

1 个答案:

答案 0 :(得分:0)

我从未使用过它们,但我相信你可以使用TouchUtils类来完成它。这是Android TouchUtils docs的链接。特别是你应该看看clickView方法。