はじめに
DBに接続したテストを実行する前に、テストデータを作成したいケースに対応する方法を記事にします
フォルダ構成
こちらのrepositories
フォルダのテストコードを参照ください
https://github.com/AppDeveloperMLLB/todo_app/tree/main/repositories
repositories/testdata
にテストで実行するsqlファイルを格納しています
テストでsqlファイルを実行するのはmain_test.go
となります
実際のコード
実際のコードは、setupTestDataメソッドを参照してください。
(Githubのコードとは、一部、変えています)
cmd := exec.Command(
"psql",
"-h",
"127.0.0.1",
"-U",
"test",
"-d",
"todo_db",
"-f",
"./testdata/createTable.sql")
cmd.Env = append(os.Environ(), "PGPASSWORD=password")
err := cmd.Run()
ポイントは、cmd.Env = append(os.Environ(), "PGPASSWORD=password")
となります。
こちらを追加することで、パスワードなしで実行ができます。
実際にコマンドラインから実行するときも、PGPASSWORD=password psql -h 127.0.0.1 -U test -d todo_db -f ./db/createTable.sql
とすることで、パスワードを入力なしでsqlファイルを実行できます。