オブジェクトを使用するアクティビティがあります。テストのために、このオブジェクトをモックしたいのですが、onCreate() 関数でアクティビティにモック オブジェクトを使用させる方法がわかりません。
AndroidMock を使用して、テストでモック オブジェクトと Robotium を作成しています。例えば:
アプリケーション(標準の Android プロジェクト) :
class MainActivity extends ... {
MyObject obj;
MainActivity() {
obj = new MyObject();
}
void onCreate(Bundle b) {
obj.doSomething();
...
}
}
テスト(標準の Android テスト プロジェクト) :
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);
}
}