1
为了注入一些模拟,我想在创建之前获取对我的活动的引用。如何在仪器测试中模拟活动依赖关系
所以,我有我的活动测试规则,如:
ActivityTestRule mActivityRule = new ActivityTestRule<MainActivity>(MainActivity,class, true, false)
我知道ActivityTestRule有beforeActivityLaunched回调,但我不能让我的活动的任何引用(为空在那里)。
所以,如果我做的:
@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule(
MainActivity.class) {
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
MainActivity act = (MainActivity)getActivity();
//Here act is null
我不能让我在我的测试类的设置方法活动的参考要么。只有当我执行rule.launchActivity()时,活动引用才准备好,但是之后执行了Activity,并且我无法传递任何依赖关系。我知道我可以使用匕首,但我想避免这种情况。在启动之前,有没有办法在没有匕首的情况下准备活动依赖项?
这是一个很好的问题的意图,因为正是这种模式使咖啡的使用时所需要的空闲由ActiveRule调用的具有IdlingRegistry注册()和unregister()的活动获取和释放的资源。在我的情况下,Activity生命周期方法与空闲资源交互(有条件的资源不为空),我希望在生命周期转换之前设置资源。最后,我不得不重新设计活动以适应测试模型...... –