2013-03-07 36 views
2

我有一个简单的测试项目来解决这个问题,我无法理解它将如何失败。在Robotium的一个类中进行2个测试clickOnButton

被测项目只为测试目的添加一个布局按钮。

<Button 
    android:id="@+id/test_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Click" /> 

下面是测试类:

public class TestMainActivity extends ActivityInstrumentationTestCase2<MainActivity> { 

    private Solo solo; 

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

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

    public void test1() { 
     solo.clickOnButton(com.example.testrobotium.R.id.test_button); 
    } 

    public void test2() { 
    } 

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

当执行这个测试类,返回的错误跟踪如下,在调用clickOnButton指出:

junit.framework.AssertionFailedError: 2131165185没有找到按钮! 在com.jayway.android.robotium.solo.Waiter.waitForAndGetView(Waiter.java:417) 在com.jayway.android.robotium.solo.Clicker.clickOn(Clicker.java:374) 在com.jayway .android.robotium.solo.Solo.clickOnButton(Solo.java:1052) at com.example.testrobotium.test.TestMainActivity.test1(TestMainActivity.java:22) at java.lang.reflect.Method.invokeNative(本地方法) 在android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204) 在android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194) 在android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186 )在android.test.AndroidTestRunner上的 。运行测试(AndroidTestRunner.java:169) 在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 在android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) 在android.app.Instrumentation $ InstrumentationThread。运行(Instrumentation.java:1448)

我是否在我的测试类中缺少导致此问题的内容?

回答

5

问题是robotium不能正常工作!

solo.clickOnButton()有两个实现,一个将按钮中的文本作为参数,另一个实现索引。您传递的按钮的ID恰好是一个int值,但int值不是索引。

您希望您的代码,改为如下所示:

solo.clickOnView(solo.getView(com.example.testrobotium.R.id.test_button)); 

如果你需要更多的解释,我会很乐意提供帮助。

+0

嗨保罗!谢谢,你明确指出我的错误。它听起来像它应该工作,但似乎我现在得到错误“点击无法完成”。任何想法? – yjw 2013-03-08 00:57:52

+0

没有想法我害怕,我猜测按钮被禁用或什么的。很难说没有看到所有的代码或运行你的应用程序抱歉。 – 2013-03-19 16:42:07

相关问题