【发布时间】:2016-03-15 15:00:03
【问题描述】:
我正在尝试使用 Firebase 作为我的应用的后端。如果我在我的应用程序中使用以下 quickstart guide 一切正常。
如果我检查我的 firebase 数据页面,则数据已成功写入。
但是,如果我尝试在 androidTest(仪器测试)中做同样的事情,什么也不会发生 - 没有数据写入 firebase 数据库。我在我的 androidTest 清单中指定了 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.");
}
}
【问题讨论】:
-
我遇到了同样的问题,但为了清楚起见,您可以编辑您的问题以包含测试示例吗?
-
我已编辑问题以包含我要运行的测试。
-
您的类应该扩展 Application 或 Activity 以使其工作,或者您可以做的是创建一个应用程序类并在 oncreate 上进行初始设置为
Firebase.setAndroidContext(this);,然后进一步完成您的工作 -
@1shubhamjoshi1:我认为扩展活动并不重要。在我的应用程序中,我将 firebase 放在了一个没有引用活动的辅助类中。我将上下文传递给助手类,它工作正常。在上面的仪器测试中,我通过了应该是同一件事的目标上下文,