gpt4 book ai didi

android - Robotium 在第二次测试中失败

转载 作者:行者123 更新时间:2023-11-30 03:55:44 27 4
gpt4 key购买 nike

我使用 robotium 3.5.1 在我的 android 程序中创建了简单测试,代码如下:

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

protected void tearDown() throws Exception {
solo.finishOpenedActivities();
}

public void testAddTabs() throws Exception {


addTab("TAB1");
addPreset("TAB1");
addTab("TAB2");
addPreset("TAB2");


}

public void addTab(String tabName) throws Exception {

solo.assertCurrentActivity("Checking current Activity",
MainActivity.class);
Log.d("MyTag", solo.getCurrentActivity().getLocalClassName() );
solo.clickOnView(solo.getView(com.sm.scam.R.id.menu_new_tab));
solo.enterText(0, tabName);
solo.clickOnText("OK");

}

public void addPreset(String name) throws Exception {
Log.d("MyTag", solo.getCurrentActivity().getLocalClassName() );
solo.goBackToActivity("MainActivity");
Log.d("MyTag", solo.getCurrentActivity().getLocalClassName() );
solo.clickOnText(name);
solo.clickOnText("New Preset");
Log.d("MyTag", solo.getCurrentActivity().getLocalClassName() );
solo.assertCurrentActivity("Checking current Activity",
PresetActivity.class);

String presetName = "Moti" + 1;
solo.enterText(0, presetName);
solo.pressSpinnerItem(0, 1);
solo.clickOnText("Darkened");
solo.clickOnText("GPS Tag");
solo.clickOnView(solo.getView(com.sm.scam.R.id.menu_save_preset));
}

它只是添加新选项卡,并在选项卡中按下按钮,更改编辑文本、微调器和 2 个切换按钮并保存。在第一个选项卡中一切正常,但在第二个选项卡中出现以下代码:

solo.clickOnText("New Preset");

什么都不做!单击此按钮时没有任何反应,它应该转发到 PresetActivity,因为它在第一个选项卡中正确转发。

错误代码:

junit.framework.ComparisonFailure: Checking current Activity expected:<...Preset...>            but was:<...Main...>
at com.jayway.android.robotium.solo.Asserter.assertCurrentActivity(Asserter.java:57)
at com.jayway.android.robotium.solo.Solo.assertCurrentActivity(Solo.java:570)
at com.sm.scam.test.ScamTest.addPreset(ScamTest.java:55)
at com.sm.scam.test.ScamTest.testAddTabs(ScamTest.java:32)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java :186)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:537)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1574)

我也试图通过调用来强制它:

solo.goBackToActivity("MainActivity");

但还是一无所获。如果有人帮助我,将不胜感激。谢谢

最佳答案

标签主机?如果是这样,那可能是你的问题。 TabHosts 涉及打开多个 Activity ,这确实让 robotium 感到困惑。这是因为 robotium 只知道它看到的最后一个 Activity ,这意味着在多个 Activity 打开的情况下,它最后看到的 Activity 可能不是您期望的那个。

您可以看到这种情况正在发生,因为它并不是没有点击任何东西,实际上只是点击了错误的 Activity ,这就是失败的断言。

关于android - Robotium 在第二次测试中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com