kantaroso / game-information

0 stars 0 forks source link

API側にテストコードを導入する #7

Closed kantaroso closed 3 years ago

kantaroso commented 3 years ago

概要

app/gin/lib/domain/* 以下のファイルにテスコードを追加する

補足

参考:https://qiita.com/saya713y/items/f7ee07e8f12ab85ed9bf

kantaroso commented 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インスタンスはシングルトン化する

参考: https://text.baldanders.info/golang/singleton-pattern/

kantaroso commented 3 years ago

golang:alpine のdockerイメージだと諸々足りてなかったので入れる

apk add build-base

参考: https://qiita.com/KEINOS/items/fd6a299961e3b8f3864f

kantaroso commented 3 years ago

ひとまずできた。

/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
kantaroso commented 3 years ago

エラった場合はこんな感じ

/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
kantaroso commented 3 years ago

配列を定数として持てないらしいので配列の定数を作りたかったら関数で代用する

https://ryochack.hatenablog.com/entry/2013/04/17/000815

kantaroso commented 3 years ago

アサーションを使う

https://qiita.com/JpnLavender/items/21b4574a7513472903ea

kantaroso commented 3 years ago

interface使いどころがありそう

https://medium.com/since-i-want-to-start-blog-that-looks-like-men-do/%E5%88%9D%E5%BF%83%E8%80%85%E3%81%AB%E9%80%81%E3%82%8A%E3%81%9F%E3%81%84interface%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9-golang-48eba361c3b4