繁体   English   中英

使用FirebaseAuth对活动进行仪器单元测试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM