[英]Instrumental unit testing of activity with FirebaseAuth
我正在尝试使用FirebaseAuth
设置Activity
并进行工具性的单元测试。 当我运行该应用程序时,一切正常。 问题在于仪器单元测试的设置。
活动:
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());
}
}
异常(仅在运行测试时,而非应用程序时):
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.
我认为您的问题是applicationID(又名包名)。 您还应该将要测试的应用程序ID添加到Firebase项目帐户。
后缀: test
一般来说,它看起来像:
[ApplicationID] .test
即
com.apipas.android.hello.test
发布applicationId为
com.apipas.android.hello
希望对您有帮助,'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.