私が現在取り組んでいるデータベースアプリケーションは、あらゆる種類の設定をデータベースに保存します。これらの設定のほとんどは、特定のビジネスルールをカスタマイズするためのものですが、そこには他にもいくつかのものがあります。グローバルアプリケーション設定へのアクセス
アプリには、特定のタスク(具体的には複雑な計算など)を行うオブジェクトが含まれています。これらの非UIオブジェクトはユニットテストされていますが、それらのグローバル設定の多くにもアクセスする必要があります。これを実装したのは、実行時にApplication Controllerによって満たされるオブジェクトのプロパティを与えることです。テスト時には、テストでオブジェクトを作成し、テスト用の値を入力します(データベースからではありません)。
これはすべてのオブジェクトにグローバルが必要な場合よりも優れています設定オブジェクト---もちろん、ユニットテストは不可能です:)短所は、それらのプロパティをサブオブジェクトに '浸透させる'必要があるかどうかを判断する必要があります。
一般的な質問はです:グローバル変数を必要とせずに、プロジェクト内のグローバルアプリケーション設定にどのようにアクセスして、コードを単体テストできますか?これは100の時代に解決された問題でなければなりません...
(注:経験豊かなプログラマーではありませんが、気づいたことがありますが、私は学ぶことが大好きです!