我尝试使用Activity
设置FirebaseAuth
的单元测试。当我运行应用程序时,一切正常。问题在于仪器单元测试的设置。
活动:
public final class GoogleSignInActivity extends AppCompatActivity{
@Override
protected void onCreate(final Bundle savedInstanceState) {
...
if (FirebaseApp.getApps(this).isEmpty()) {
FirebaseApp.initializeApp(this);
}
mFirebaseAuth = FirebaseAuth.getInstance();
}
}
测试
@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());
}
}
异常(仅在运行测试时,而非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.
答案 0 :(得分:1)
我认为你的appID问题(a.k.a包名)。您还应该将您的应用程序ID添加到Firebase项目帐户中进行测试。
它有后缀:测试
一般来说,它看起来像:
[的applicationID]。测试
即
com.apipas.android.hello.test
发布applicationId是
com.apipas.android.hello
我希望这对你有帮助,'。