関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
以下のブログ記事から nalgeon/be というライブラリを知りました。
めっちゃシンプルで使いやすいですね。個人的にドンピシャなライブラリです。
こんな感じでシンプルなのが良いんですよ。それぞれがジェネリック対応となっているため、どのような型でもアサート出来るようになっています。
関数も
- Equal
- Err
- True
の3つだけです。
自分用に使い方のメモを残しておくことにしました。今回は True
関数。
サンプル
be_true_test.go
package main import ( "errors" "fmt" "testing" "github.com/nalgeon/be" ) func sum(x ...int) int64 { var ( total int64 ) for _, v := range x { total += int64(v) } return total } func errSometime(v int) error { switch { case v > 100: return fmt.Errorf("invalid value: %d", v) case v > 10: return errors.New("invalid value") default: return nil } } func TestBeTrue(t *testing.T) { t.Run("ok", func(t *testing.T) { be.True(t, sum(1, 2, 3) == 6) }) t.Run("ng", func(t *testing.T) { be.True(t, sum(1, 2, 3) != 6) }) t.Run("ok2", func(t *testing.T) { be.True(t, errSometime(1) == nil) }) t.Run("ng2", func(t *testing.T) { be.True(t, errSometime(111) == nil) }) }
実行例
$ task task: [default] go test -v === RUN TestBeTrue === RUN TestBeTrue/ok === RUN TestBeTrue/ng be_true_test.go:38: not true === RUN TestBeTrue/ok2 === RUN TestBeTrue/ng2 be_true_test.go:44: not true --- FAIL: TestBeTrue (0.00s) --- PASS: TestBeTrue/ok (0.00s) --- FAIL: TestBeTrue/ng (0.00s) --- PASS: TestBeTrue/ok2 (0.00s) --- FAIL: TestBeTrue/ng2 (0.00s) FAIL exit status 1 FAIL github.com/devlights/try-golang/examples/testing/be_library/true 0.002s
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。