当前位置 : 主页 > 手机开发 > android >

android – 无法使我的断言当前活动起作用

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有2个活动,第一个是启动,其中创建方法导致第二个活动始终启动. 我的Robolectric测试通过了 活动 public class LoginActivity extends Activity {/** Called when the activity is first created. */@Override public
我有2个活动,第一个是启动,其中创建方法导致第二个活动始终启动.
我的Robolectric测试通过了

活动

public class LoginActivity extends Activity {

/** Called when the activity is first created. */
@Override    

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loginview);

    Intent intent = new Intent(this,MainActivity.class);
    startActivity( intent );
}

我知道我的活动很好,因为它在我的设备和模拟器上启动

我的Robolectric测试

public void testLoginFirstTime() throws Exception 
{
    LoginActivity activity = new LoginActivity();        
    activity.onCreate(null);
    assertThat(activity, new StartedMatcher(MainActivity.class));        
}

我的机器人测试

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


public void testLoginFirstTime() throws Exception 
{
    solo.assertCurrentActivity("Expected MainActivity to launch", MainActivity.class);
}

我的机器人断言有什么问题?它总是认为当前的活动是登录的,即使我看到模拟器/设备我可以看到Robotium确实启动了MainActivity,但似乎并不知道新活动已经启动.
编辑:我想说如果我在登录视图中添加一个按钮并通过按钮点击启动新的激活,则Robotium会执行点击并检测到新活动已启动.

编辑:
看起来像是Robotium的限制
http://groups.google.com/group/robotium-developers/browse_thread/thread/79a70038c16e35e6
然而,它仍然让我遇到如何使用robotium测试我的应用程序的问题,就像用户将使用它一样,即,不作弊和开始在不同的活动:(

您需要使用构造函数solo = new Solo(Instrumentation instrumentation),然后在创建Solo对象后调用getActivity()以启动第一个Activity.然后它会工作.
网友评论