我想在创建活动之前获得对它的引用,以便注入一些模拟。
所以我的活动测试规则如下:
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
我也无法在测试类的setup方法中获取对活动的引用。仅当我执行rule.launchActivity()时,活动引用才准备就绪,但随后将执行活动,并且之前无法传递任何依赖项。我知道我可以用匕首,但我想避免用匕首。在启动活动依赖项之前,是否有任何方法可以在不使用匕首的情况下对其进行准备?
最佳答案
如果activitytestrule中的第二个参数(launchactivity)为false,则意味着您应该自定义每个测试方法的意图
@Test
public void dummyTest() {
mActivityRule.launchActivity(new Intent());
// code here
}