我希望在创建活动之前获取对我的活动的引用,以便注入一些模拟。
所以我的活动测试规则如下:
ActivityTestRule mActivityRule = new ActivityTestRule<MainActivity>(MainActivity,class, true, false)
我知道ActivityTestRule有一个beforeActivityLaunched回调,但是我无法获得对我的活动的任何引用(在那里为null)。
所以,如果我这样做:
@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()时,活动引用才准备就绪,但是然后执行了Activity,我之前无法传递任何依赖项。我知道我可以使用匕首,但我想在这种情况下避免使用匕首。有没有办法在没有匕首启动之前准备活动依赖项?
答案 0 :(得分:-1)
如果ActivityTestRule中的第二个参数(launchActivity)为false,则表示您应该自定义每个测试方法的意图
@Test
public void dummyTest() {
mActivityRule.launchActivity(new Intent());
// code here
}