当前位置:  开发笔记 > Android > 正文

机器人问题

如何解决《机器人问题》经验,为你挑选了1个好方法。

我刚开始使用机器人.演示可以毫无问题地运行,但是当我使用EditText和编写第一个测试脚本时Button,会出现问题.我的环境是android 2.1,脚本很简单,只需输入用户名和psw,然后点击sumbit按钮登录.
脚本如下:

package com.tpc.test;

import com.tpc.login.Login;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.Smoke;

public class LoginTest extends ActivityInstrumentationTestCase2{

    private Solo solo;

    public LoginTest() {
        super("com.tpc", Login.class);

    }

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


     @Smoke
     public void testApp() throws Exception {
         String appName = solo.getCurrentActivity().getClass().getSimpleName();
         System.out.println(appName);
         solo.getButton(0).getClass().getSimpleName();
         solo.assertCurrentActivity("Expected login activity", appName); 
                 System.out.println(solo.getButton(0).getText());//can get the text of button
         solo.enterText(0, "name"); //input name to the 1st EditText is OK
         solo.enterText(1, "psw");   // Actually inout psw after name to the 1st EditText
         solo.clickOnButton(0);       //Expect click the 1st button.Actually click the 1st EditText
         //assert of sample, not been modified      
         boolean expected = true;
         boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
         assertEquals("Note 1 and/or Note 2 are not found", false, actual);
     }

    @Override
    public void tearDown() throws Exception {
        try {
            solo.finalize();
        } catch (Throwable e) {
            e.printStackTrace();
        }
        getActivity().finish();
        super.tearDown();
    } 
}

一个问题是名字和psw都填写在第一个EditText,另一个是solo.clickOnButton(0);点击第一个EditText,而不是第一个Button.我也尝试使用文本名称Button,但结果是一样的.似乎所有的操作都放在第一位EditText.我想问题是什么.有什么建议吗?谢谢



1> Renas..:

我已经看过你要测试的应用程序,问题是你没有声明它支持高密度屏幕.当您在高密度仿真器/设备上使用Robotium时会出现问题.

您需要在AndroidManifest.xml中添加以下标记:

如果您将该标记添加到AndroidManifest.xml,那么它将起作用.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有