Go
testify
https://github.com/stretchr/testify
assert, mock, suiteなど、テストに便利な機能を提供するライブラリ
Goには標準で testing
ライブラリが備わっていて、標準で十分な場面もあるが、
ある程度大きなプロジェクトになってくるとやはり物足りなくなってくる
assert
ライブラリをimportする
assert.<アサーション関数>(testing.T, 期待値, 実際の値)
mock
通信やDBをmockする機能が用意されている。
テスト対象
例として以下のインターフェースをmockする
モック作成
- メソッド内でCalledメソッドを実行し、retを取得
- ret.Get(戻り値のindex)をメソッドの戻り値とする
- 戻り値がエラーの場合はret.Error(戻り値のindex)
mockを毎回手で書くのは大変なので、mockeryを使うと便利 go_mockery
テスト実行
- モックの期待引数、戻り値を設定
- テスト対象にモックを注入
- テスト実行(内部でモック実行)
- mockの実行回数をassert
suite
各test前後に
各テスト前後にそれぞれ、 SetupTest()
と TearDownTest()
が実行される。
下記のインターフェースをそれぞれ実装することで実行される仕組みとなっている。
他にもテスト全体の前後に一回実行される処理も定義することができる。
こちらを参照