golangのテストについて
Go言語を調べている間、いろいろなライブラリとかサンプルコードとか見てるとテストファイルを同じ階層に入れていました。 goはそういうお作法なのかと思い今回実験してみました。
今回のぎもん
こんな感じになってる構成がおおいけど、同じ階層にテストファイルをいれないといけないのか
▶ tree . ├── controller │ ├── hogehoge.go │ ├── hogehoge_test.go
試してみた
フォルダ構成
▶ tree . ├── controller │ └── hogehoge.go ├── test │ └── hogehoge_test.go
実装
import ( "fmt" "testing" "../controller" ) func TestHogehoge(t *testing.T) { count := 1 for i := 0; i < count; i++ { key := fmt.Sprintf("key_%d", i) value := fmt.Sprintf("value_%d", i) println("---------------------") controller.Hogehoge(key, value) } }
実行結果
--------------------- ← hogehoge_test.go での出力 ///////////////////// ← hogehoge.go での出力 PASS ok _/hogehogehoge/test 0.106s
結果
testファイルを同じ階層にいれないといけないということはありませんでした。
しかし、同じ階層(package)内に入れないとpublic function以外参照できないので同じ階層に入れている様でした。
ちょっとどうにかしたいけどこれはしょうがないんですね…うーん。
それでは〜