Wie Sie die Referenz der Aktivität abrufen, bevor ihr onCreate aufgerufen wird. während es im Test ist. Ich benutze ActivityTestRule als JUnit Regel. Der Grund für diese Anforderung ist, dass ich Mocks aus Tests in die Aktivität injizieren möchte.So erhalten Sie die Aktivitätsreferenz, bevor ihr OnCreate während des Tests aufgerufen wird
public class MyActivity extends Activity{
MyComponent myComponent;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if(myComponent==null){
myComponent ... //initialise dagger component
}
myComponent.inject(this);
...
}
public void setComponent(MyComponent comp){
this.myComponent = comp;
}
}
public class MyTest{
@Rule
public ActivityTestRule<MyActivity> intentsTestRule = new ActivityTestRule<>(MyActivity.class);
MyComponent myFakeComponent;
@Before
public void setUp() {
MyActivity activity = intentsTestRule.getActivity();
activity.setComponent(myFakeComponent);
}
@Test
public void testMethod1(){...}
}
Haben Sie 'Dagger' verwenden?Wenn ja, wo initiieren Sie die Module von Dagger? – eleven
Ich mache es in Setup() –