gpt4 book ai didi

android - 如何编写 Firebase Android 仪器测试?

转载 作者:行者123 更新时间:2023-12-05 00:01:19 29 4
gpt4 key购买 nike

我正在尝试使用 Firebase 作为我的应用程序的后端。如果我使用以下 quickstart guide在我的应用程序中,一切正常。

如果我检查我的 firebase 数据页面,数据已成功写入。

但是,如果我尝试在 androidTest(仪器测试)中做同样的事情,什么也不会发生——没有数据被写入 firebase 数据库。我在我的 androidTest list 中指定了 Internet 权限,所以想知道我是否需要做其他事情才能从我的测试中写入 firebase?

相关说明,一旦我可以在仪器测试中执行此操作,是否有办法在单元测试中执行相同的操作?

非常感谢,

里兹

编辑:这是我要运行的测试:

public class FirebaseTest extends InstrumentationTestCase{
private static final String FIREBASE = "https://my-app-name.firebaseio.com/";

@Override
@Before
public void setUp() {
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
Firebase.setAndroidContext(getInstrumentation().getTargetContext());
}

@Test
public void testWrite(){
Firebase cloud = new Firebase(FIREBASE);
cloud.child("message").setValue("Do you have data? You'll love Firebase.");
}
}

最佳答案

在您的主应用程序中,您可以定义一个 androidApplication 类来初始化您的 Firebase 上下文。然后创建一个扩展 ApplicationTestCase 的 ApplicationTest :

在主要来源:

public class MyApplication extends android.app.Application {

@Override
public void onCreate() {
super.onCreate();
Firebase.setAndroidContext(this); //initializeFireBase(context);
isInitialized = true;
}
}

在你的 Android 测试中:

public class ApplicationTest extends ApplicationTestCase<MyApplication> {

private static MyApplication application;

public ApplicationTest() {
super(MyApplication.class);
}

@Override
public void setUp() throws Exception {
super.setUp();
if (application == null) {
application = getApplication();
}
if (application == null) {
application = (MyApplication) getContext().getApplicationContext();
assertNotNull(application);
long start = System.currentTimeMillis();
while (!application.isInitialized()){
Thread.sleep(300); //wait until FireBase is totally initialized
if ( (System.currentTimeMillis() - start ) >= 1000 )
throw new TimeoutException(this.getClass().getName() +"Setup timeOut");
}
}
}


@Test
public void testWrite(){
Firebase cloud = new Firebase(FIREBASE);
cloud.child("message").setValue("Do you have data? You'll love Firebase.");
}

}

关于android - 如何编写 Firebase Android 仪器测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014865/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com