2

アプリが機能のオン/オフを決定したり、カスタム値を取得したりするために使用する Firebase Remote Config の上にレイヤーを作成しました。これに関するいくつかの単体テストを作成しました。しかし、人々がアプリを使用してネットワークから値を取得すると、それらは保存され、で設定したデフォルト値を上書きするようFIRRemoteConfigです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 に答える