私はGoogleのテスト用のブログを読んでいました。グローバルな状態が悪く、テストを書くのが難しいと言われています。私はそれを信じています - 私のコードは今テストするのが難しいです。だから私はどのようにグローバルな状態を避けるのですか?グローバルな状態を回避するにはどうすればよいですか?
グローバルな状態(私が理解しているように)を使用する最大の理由は、開発環境、受け入れ環境、本番環境の間で重要な情報を管理することです。たとえば、私は "DBConnectionString"と呼ばれる静的メンバーを持つ "グローバル"という名前の静的クラスを持っています。アプリケーションがロードされると、ロードする接続文字列が決定され、Globals.DBConnectionStringが生成されます。ファイルパス、サーバー名、およびその他の情報をGlobalsクラスにロードします。
私の機能の中には、グローバル変数に依存するものがあります。だから、私が自分の関数をテストするときには、まず特定のグローバルを設定することを忘れてはいけません。さもなければ、テストは失敗します。私はこれを避けたい。
状態情報を管理する良い方法はありますか? (あるいは、私はグローバル状態を間違って理解していますか?)