Global Stubbing of time.Now()
テストでは、コードの時間依存の側面を制御することが重要になります。ただし、time.Now() をグローバルにスタブアウトすることは、複数のコード セクションにわたって広く使用されているため、困難になる可能性があります。
推奨されるアプローチ: カスタム時間インターフェイス
を使用する現在の実装カスタム インターフェイスは効果的なソリューションです。アプローチの概要は次のとおりです。
代替手段
予期しない依存関係が生じる可能性があるため、テスト中にシステム クロックを変更することは強くお勧めしません。
制限
スタブout time.Now() にはグローバルに制限があります。たとえば、テスト対象のコードがシステム時間に依存するサードパーティ ライブラリを使用している場合、その動作をオーバーライドできない可能性があります。
ステートレス コードの利点
ステートフル性をできるだけ少なくしてコードを設計すると、テストが簡素化され、同時実行が容易になります。機能をテスト可能なステートレスなコンポーネントに分割することで、テスト中に時間に依存する側面を制御しやすくなります。
以上がテストのために「time.Now()」をグローバルに効果的にスタブするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。