4

プロセスに特定の環境変数が設定されているかどうかを検証するパッケージがありますinit()

これは、起動時にプロセスが適切に構成されていることを確認するために行います。

_test.go問題は、環境がテスト スイートに存在しないため、このアプローチは (ファイルを使用して) 実際にはテストできないことです。

この問題を解決する最善の方法は何ですか?

4

1 に答える 1

3

検証をテストできるようにしたいですか、それともテスト ファイルで完全にスキップしますか? どちらの方法でも、検証コードをテスト中にビルドされない独自のファイルに分離するという、同じ基本的なアプローチを使用します。テスト中に検証を完全にスキップしたい場合は、init()関数全体をそのファイルに入れます。検証をテストする場合は、検証コードで独自の shim を呼び出して環境値を取得し、その shim をその非テスト ファイルに配置し、別の shim をテスト中にのみコンパイルされるファイルに配置します。

ファイル ヘッダーのビルド制約を使用して、テスト中にファイルをビルドするかどうかを制御できます。IIRC、テストを実行するとtest制約が適用されるため、それを確認できます。

于 2012-12-11T02:14:20.773 に答える