Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Robolectric复制的Otto provider测试Android活动_Android_Robolectric_Otto - Fatal编程技术网

使用Robolectric复制的Otto provider测试Android活动

使用Robolectric复制的Otto provider测试Android活动,android,robolectric,otto,Android,Robolectric,Otto,我在弄清楚如何使用Robolectric 2.2测试我的活动时遇到了一个小问题。我可能没有正确设置生命周期或整个测试 在我的活动中,我有一个像这样的奥托制作人: @Produce public GetAlarmList produceAlarmList() { Log.v(this, "Producing GetAlarmList event."); return new GetAlarmList(mAlarmList); } 下面是我的测试 @RunWith(Robolect

我在弄清楚如何使用Robolectric 2.2测试我的活动时遇到了一个小问题。我可能没有正确设置生命周期或整个测试

在我的活动中,我有一个像这样的奥托制作人:

@Produce public GetAlarmList produceAlarmList() {
    Log.v(this, "Producing GetAlarmList event.");
    return new GetAlarmList(mAlarmList);
}
下面是我的测试

@RunWith(RobolectricTestRunner.class)
public class GLarmListFragmentTests {

    //GLarmMain mActivity;
    ActivityController<GLarmMain> mController;

    @Before
    public void setUp() throws Exception {
        mController = Robolectric.buildActivity(GLarmMain.class);
    }

    @After
    public void tearDown() throws Exception {
        mController = mController.destroy();
    }

    @Test
    public void shouldHaveListFragment() {
        GLarmMain activity = mController.create().start().resume().visible().get();
        GLarmListFragment listFragment = (GLarmListFragment) activity.getSupportFragmentManager().findFragmentById(R.id.main_list_frag);
        assertNotNull(listFragment);
    }

    @Test
    public void shouldHaveListAdapter() {
        GLarmMain activity = mController.create().start().resume().visible().get();
        GLarmListFragment listFragment = (GLarmListFragment) activity.getSupportFragmentManager().findFragmentById(R.id.main_list_frag);
        FuncAlarmListAdapter listAdapter = (FuncAlarmListAdapter)listFragment.getListAdapter(); 
        assertNotNull(listAdapter);
    }
}

有人有同样的问题吗?我如何解决它?

找到了问题,将其留在此处供参考。 我没有处理pause()/onPause()生命周期步骤,因此从未调用:

@Override
protected void onPause() {
    super.onPause();
    Log.v(this, ".onPause()");
    mBus.unregister(this); // unregisters.
}
将上述代码更改如下:

@After
public void tearDown() throws Exception {
    mController = mController.pause().stop().destroy();
}
@After
public void tearDown() throws Exception {
    mController = mController.pause().stop().destroy();
}