Slide 1

Slide 1 text

Go のテストで 失敗をマークする おーたかこーたろー / @otakakot The Go gopher was designed by Renée French. The icon was designed by @avocadoneko. (Unofficial)Go Conference 2024 Pre Party 2024.06.07

Slide 2

Slide 2 text

bio Web Engineer 新卒入社 2020 年 4 月 ~ Hello Golang ! 2021 年 4 月~ @otakakot
 @otakakot
 Web Engineer 株式会社ビットキー 2022 年 11 月 ~ Kotaro Otaka / 大高 浩太郎 The Go gopher was designed by Renée French. The icon was designed by @avocadoneko.

Slide 3

Slide 3 text

テストで error が発生したとき t.Error() t.Fatal() t.Fail() t.Errorf() t.Fatalf() t.FailNow()

Slide 4

Slide 4 text

自信を持って 失敗をマークできる!

Slide 5

Slide 5 text

エラー発生時に使えそうなメソッドたち ※ testing パッケージからそれっぽいメソッドを抜粋 ※ Go のバージョンは 1.22.4 を参照

Slide 6

Slide 6 text

使い分けるメソッドは2種類 ※ testing パッケージからそれっぽいメソッドを抜粋 ※ Go のバージョンは 1.22.4 を参照

Slide 7

Slide 7 text

組み合わせでできている

Slide 8

Slide 8 text

Log() と Logf()

Slide 9

Slide 9 text

Error() と Errorf() Log() Logf()

Slide 10

Slide 10 text

Fatal() と Fatalf() Log() Logf()

Slide 11

Slide 11 text

Error 系が呼び出す Fail メソッド

Slide 12

Slide 12 text

Fatal 系が呼び出す FailNow メソッド Reference: 【Golang】Exit, panic, Goexitの違い 


Slide 13

Slide 13 text

エラーが発生しても、テストは継続 エラーが発生したら、テストは終了 こう使い分けよう

Slide 14

Slide 14 text

例えば ... Error(f) 結果と期待値の比較の失敗 Fatal(f) テストデータの準備の失敗 mock の構築の失敗

Slide 15

Slide 15 text

まとめ 失敗に関係しそうなメソッドを紹介 使うメソッドは2種類 失敗をマークするメソッドは組み合わせ t.Log(f) は内包 メソッドの使い分け Reference:Testing in Go: Failing Tests Reference:testing package