2

我在 Firebase 远程配置之上创建了一个层,我的应用程序使用它来决定功能是打开还是关闭,或者获取自定义值。我已经围绕这个编写了一些单元测试。但似乎当人们使用该应用程序并从网络获取值时,它们会被保存并覆盖您在FIRRemoteConfigwith上设置的默认值setDefaults。这会导致我的单元测试出现问题。

有没有办法告诉你FIRRemoteConfig忘记它保存的值,只使用你设置的默认值?

4

2 回答 2

1

正如此处的文档中解释的那样,从服务器获取值并使用它们,您需要:

  1. 调用fetchWithCompletionHandler:orfetchWithExpirationDuration:completionHandler:函数
  2. 称呼activateFetched

您可以为您的单元测试做的是:使用全新安装,注释/删除activateFetched函数调用,它将返回您设置的默认值。

于 2016-09-07T09:25:38.770 回答
0

获取值的目标是覆盖您的默认值,以防用户无法连接到 Firebase 服务器并获取配置。

您需要做的是:

  1. 不要在单元测试中激活您获取的值,这将使您的默认值保持原样。这需要您更改应用程序逻辑以检查您是否在单元测试中。
  2. 定义一个用户属性(即“test_run”)并设置您的远程配置以仅为该值为 false 的用户返回真实值,以及在为 true 时进行测试所需的值,这样更清晰。

我对不使用实际值的测试的有效性有些担忧。

于 2016-09-07T14:05:45.210 回答