【问题标题】:Mock firebase android applicattion模拟 firebase android 应用程序
【发布时间】:2019-11-27 23:50:06
【问题描述】:

我是编程新手,我必须使用数据库创建一个简单的应用程序。我正在使用 Firebase 实时数据库,但我不知道如何进行单元测试。

如何模拟数据库并推送一些假数据进行测试?

你能给我举个例子吗?

【问题讨论】:

  • 欢迎来到 SO! Firebase 有一个 emulator suite 可用于测试。正如所写,这个问题非常广泛。您应该更具体地说明您尝试过的方法以及不适合您的方法。
  • 我已经实现了将书籍和作者添加到 firebase 实时数据库的方法。我不知道如何为该方法实现单元测试。

标签: java android firebase kotlin firebase-realtime-database


【解决方案1】:

选项 1:如果您只是使用实时数据库,您可以做的一件事是在测试开始时调用 goOffline()。这将阻止所有网络活动,但由于延迟补偿,本地事件仍将触发。这有一些限制(例如,不强制执行安全规则并且交易无法正常工作),但可能会根据您的用例起作用。

选项 2:查看https://github.com/azell/quasar-firebase

选项 3:或者对于另一种与模拟不同的方法,您可以尝试环境“沙盒”。

您可以为每个环境创建一个不同的根节点,而不是将所有内容存储在同一个根节点下。

例如:

{
DEV : { data : {'all_your_dev_data_lives_here'}}
PRODUCTION : { data : {'all_your_production_data_lives_here'} 
}

在您的 android 应用程序中,您将构建一个配置标志,让您可以在“DEV”和“PRODUCTION”之间切换。如果标志是“DEV”,它只会写入 Firebase 中的“DEV”根节点,而不会影响 PRODUCTION。

【讨论】:

  • 所以如果我选择第一个选项,我正在使用对我的实时数据库的引用,但调用 goOffline() 会使更改不会被保存?我应该如何调用 goOffline()? firebaseReference.goOffline()?
猜你喜欢
  • 2016-07-03
  • 1970-01-01
  • 2021-04-28
  • 2020-02-29
  • 2016-09-24
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多