Android 如何将模拟对象放入活动的onCreate()中?
我有一个使用对象的活动。为了进行测试,我想模拟这个对象,但我找不到如何使活动在onCreate()函数中使用模拟对象 我在测试中使用AndroidMock创建模拟对象和Robotium。例如: 应用程序(标准Android项目): 测试(标准Android测试项目): 我知道这两种方法Android 如何将模拟对象放入活动的onCreate()中?,android,automated-tests,Android,Automated Tests,我有一个使用对象的活动。为了进行测试,我想模拟这个对象,但我找不到如何使活动在onCreate()函数中使用模拟对象 我在测试中使用AndroidMock创建模拟对象和Robotium。例如: 应用程序(标准Android项目): 测试(标准Android测试项目): 我知道这两种方法 使用DI Conrainer。 继承要测试的类 活动 class DummyMainActivity extends MainActivity { Bundle b;
class DummyMainActivity extends MainActivity {
Bundle b;
@Override
void onCreate(Bundle b) {
this.b = b;
}
void onCreateSuper() {
super(b);
}
}
试验
class MainActivityTest扩展了ActivityUnitTestCase{
@UsesMocks(MyObject.class)
public void testMyObject(){
//创建模拟对象
MyObject o=AndroidMock.createMock(MyObject.class);
DummyMainActivity活动=startActivity(new Intent(),null,null);
activity.obj=o;
activity.onCreateSuper();
AndroidMock.验证(o);
}
}
class MainActivityTest extends ... {
@UsesMocks(MyObject.class)
public void testMyObject() {
// create the mock object
MyObject o = AndroidMock.createMock(MyObject.class);
AndroidMock.expect(o.doSomething()).andReturn(false);
AndroidMock.replay(o);
// Here some code which makes the activity use the mock object
// and calls the onCreate() function on the activity.
// Do some tests on the activity.
Solo solo = new Solo(getInstrumentation(), getActivity());
Assert.assertTrue(solo.searchText("It works!"));
AndroidMock.verify(o);
}
}
@inject
MyObject obj;
class DummyMainActivity extends MainActivity {
Bundle b;
@Override
void onCreate(Bundle b) {
this.b = b;
}
void onCreateSuper() {
super(b);
}
}
class MainActivityTest extends ActivityUnitTestCase<DummyMainActivity> {
@UsesMocks(MyObject.class)
public void testMyObject() {
// create the mock object
MyObject o = AndroidMock.createMock(MyObject.class);
DummyMainActivity activity = startActivity(new Intent(), null, null);
activity.obj = o;
activity.onCreateSuper();
AndroidMock.verify(o);
}
}