Ich versuche, Setup und Instrumental Unit Test für Activity
mit FirebaseAuth
. Wenn ich die Anwendung starte, funktioniert alles gut. Das Problem liegt in der Einrichtung von Instrumenten-Komponententests.Instrumental Unit Tests der Aktivität mit FirebaseAuth
Aktivität:
public final class GoogleSignInActivity extends AppCompatActivity{
@Override
protected void onCreate(final Bundle savedInstanceState) {
...
if (FirebaseApp.getApps(this).isEmpty()) {
FirebaseApp.initializeApp(this);
}
mFirebaseAuth = FirebaseAuth.getInstance();
}
}
Test:
@RunWith(AndroidJUnit4.class)
public class GoogleSignInActivityIntegrationTest extends UiTestPrerequesites {
@Rule
public final ActivityTestRule<GoogleSignInActivity> mActivityRule = new ActivityTestRule<>(
GoogleSignInActivity.class, false, true);
@Before
public void setup(){
if (FirebaseApp.getApps(InstrumentationRegistry.getContext()).isEmpty()) {
FirebaseApp.initializeApp(InstrumentationRegistry.getContext());
}
}
@Test
@SmallTest
public void implements_GoogleSignInWorkerFragment_GoogleSignInUiChangesListener() {
//FirebaseApp.initializeApp(InstrumentationRegistry.getContext()); (this doesn't help)
assertThat(mActivityRule .getActivity(),
notNullValue());
}
}
Exception (nur wenn Test ausgeführt wird, nicht app):
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.twofortyfouram.ui.test. Make sure to call FirebaseApp.initializeApp(Context) first.
Überprüfen Sie, ob Sie FirebaseApp.initializeApp (InstrumentationRegistry.getContext()) wirklich aufrufen; im Setup. Ich denke, du wurdest nie wegen dieser Bedingung gerufen. –
@MaherAbuthraa Ich habe es bereits vorher überprüft. Sogar versucht, es ohne Bedingung hinzuzufügen .... es wird aufgerufen. –
Haben Sie eine Lösung gefunden? Ich stehe vor demselben Problem – Bedant