goプログラムは接続文字列を使用してデータベースに接続します。現在、その接続文字列は環境変数に格納されています。Go統合テストでテストデータベース接続を使用する
私の挑戦は、テストデータベースに対してプログラムを実行する自動テストを作成することです。
私はテストのinit()関数で接続文字列環境変数を設定すると思っていましたが、メインプログラムのinit()関数はテストinit()の前に呼び出されます。
回避策は、接続文字列をテストデータベースにデフォルト設定することです。環境変数が定義されていない場合は、testを使用します。それが定義されていれば(プロダクション)、それを代わりに使用してください。
代替手段はありますか?より良いアプローチがありますか?
プログラムで使用されているdb接続はグローバルですか?はいの場合は、テストconnを作成してグローバル変数の値として設定してください。 – mkopriva
'var db = DB.getConnectionUsingEnvironmentVariable()' –
これはメインプログラムにあります。これは現在パニックです。環境変数を設定したら、環境変数がない場合は接続を作成せず、テストから同じコードを呼び出すように変更することができます。これはあなたが念頭に置いていたものですか? –