Closed kantaroso closed 3 years ago
db系のテストはsqlmockを使う
参考: https://ren.nosuke.me/blog/202007/20200710/ https://qiita.com/gold-kou/items/cb174690397f651e2d7f
テストができるようにdb部分はDIできるように変更する
参考: https://qiita.com/hirano00o/items/7a7dd67bd520fde3af5e https://www.go-lang-programming.com/doc/test/sqlmock
また各種DBインスタンスはシングルトン化する
golang:alpine
のdockerイメージだと諸々足りてなかったので入れる
apk add build-base
ひとまずできた。
/go/src/game-information # go test -v lib/domain/accesslog/accesslog_test.go lib/domain/accesslog/accesslog.go
=== RUN TestGetAccessCount
--- PASS: TestGetAccessCount (0.00s)
accesslog_test.go:14: TestGetAccessCount : start
accesslog_test.go:39: TestGetAccessCount : end
PASS
ok command-line-arguments 0.006s
エラった場合はこんな感じ
/go/src/game-information # go test -v lib/domain/accesslog/accesslog_test.go lib/domain/accesslog/accesslog.go
=== RUN TestGetAccessCount
--- FAIL: TestGetAccessCount (0.00s)
accesslog_test.go:41:
Error Trace: accesslog_test.go:41
Error: Not equal:
expected: 0
actual : 1
Test: TestGetAccessCount
=== RUN TestRegister
--- PASS: TestRegister (0.00s)
FAIL
FAIL command-line-arguments 0.009s
FAIL
配列を定数として持てないらしいので配列の定数を作りたかったら関数で代用する
概要
app/gin/lib/domain/*
以下のファイルにテスコードを追加する補足
参考:https://qiita.com/saya713y/items/f7ee07e8f12ab85ed9bf