Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go のテストで失敗をマークする
Search
Kotaro Otaka
June 07, 2024
0
54
Go のテストで失敗をマークする
https://moneyforward.connpass.com/event/313929/
での登壇資料です。
Kotaro Otaka
June 07, 2024
Tweet
Share
More Decks by Kotaro Otaka
See All by Kotaro Otaka
cmp.Or に感動した
otakakot
1
76
net/http/httptest が推しです♡
otakakot
3
110
無料で楽しむ Go サーバー開発のススメ
otakakot
9
2.8k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Building an army of robots
kneath
302
43k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Statistics for Hackers
jakevdp
796
220k
Adopting Sorbet at Scale
ufuk
73
9.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Cult of Friendly URLs
andyhume
78
6k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Teambox: Starting and Learning
jrom
133
8.8k
Transcript
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
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.
テストで error が発生したとき t.Error() t.Fatal() t.Fail() t.Errorf() t.Fatalf() t.FailNow()
自信を持って 失敗をマークできる!
エラー発生時に使えそうなメソッドたち ※ testing パッケージからそれっぽいメソッドを抜粋 ※ Go のバージョンは 1.22.4 を参照
使い分けるメソッドは2種類 ※ testing パッケージからそれっぽいメソッドを抜粋 ※ Go のバージョンは 1.22.4 を参照
組み合わせでできている
Log() と Logf()
Error() と Errorf() Log() Logf()
Fatal() と Fatalf() Log() Logf()
Error 系が呼び出す Fail メソッド
Fatal 系が呼び出す FailNow メソッド Reference: 【Golang】Exit, panic, Goexitの違い
エラーが発生しても、テストは継続 エラーが発生したら、テストは終了 こう使い分けよう
例えば ... Error(f) 結果と期待値の比較の失敗 Fatal(f) テストデータの準備の失敗 mock の構築の失敗
まとめ 失敗に関係しそうなメソッドを紹介 使うメソッドは2種類 失敗をマークするメソッドは組み合わせ t.Log(f) は内包 メソッドの使い分け Reference:Testing in Go:
Failing Tests Reference:testing package