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 で Golden File Test
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
TOC
November 24, 2022
1.3k
1
Share
Go で Golden File Test
Let's Go Talk #4 で LT 登壇した際の資料
https://connehito.connpass.com/event/262611/
TOC
November 24, 2022
More Decks by TOC
See All by TOC
仮説→実験→検証→学び... プロダクト開発を前に進めるためにMobius Outcome Deliveryを学び 実践していること
toc0522
3
3.9k
ファシリテーションLT ~良いファシリテーションをするために~
toc0522
0
540
もっと快適に! デプロイフロー改善への道!
toc0522
0
920
Goで学ぶ Fuzzing
toc0522
0
310
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The SEO identity crisis: Don't let AI make you average
varn
0
480
Abbi's Birthday
coloredviolet
2
7.8k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
520
Designing for Performance
lara
611
70k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
How to train your dragon (web standard)
notwaldorf
97
6.6k
Transcript
2022/11/09 Let’s Go Talk #4 TOC Go で Golden File
Test
- TOC(とっしー) - コネヒト株式会社 - バックエンドエンジニア - 主にPHP - Go
は趣味で勉強中 自己紹介
- tenntenn さんの主催する Gopher 塾に参加してきました - Testing がテーマでテスト全般の講義 - Golden
File Test も扱った - PHP でも最近使っていたので興味が沸いた LT のモチベーション
- API のレスポンスデータをファイルで保持し、比較するテスト - Snapshot Testing とも呼ばれる Golden File Test
とは 初回実行 (or -update) 目視で出力 ファイルを確認 ファイル生成 2回目以降の テスト実行 出力 比較 ファイルの データと出力 を比較
ライブラリ色々 - tenntenn/golden - シンプルで扱いやすい印象 - 最近アップデートされて更新とチェックが同時にできる - sebdah/goldie -
オプションが豊富 - 2020年からメンテされていない - gotestyourself/gotest.tools - string, []byte形式に対応
実際のコード例 - tenntenn/golden の例 - 比較やファイル生成してるのは golden.Check の部分だけ - 指定した
testdata ディレクトリ配下に {name}.golden ファイルを生成する
- 形式としては json で保存されるが、ファイルとしてはテキストファイルで 認識される - json ファイルとして認識するために工夫してるブログも - https://khigashigashi.hatenablog.com/entry/2019/04/27/15
0230 - goldie はオプションで解決できたりする - goldie.WithNameSuffix(".golden.json"), golden ファイルはテキストファイル
- json にしたとして、めっちゃ長いレスポンスを全部目視できる? - 人間誰しも見落としするよね - 外形は一緒でも中身のロジックの変化はテストできない - レスポンス構造を担保したい、とかは使えそう -
中身のロジックはユニットテストで守りたい - 何をテストしたいのか、で使い所が分かれそう Golden File Test は使い所が大事
- tenntenn/golden は json 形式以外(string, []byte, io.Reader, encoding.TextMarshaler)も対応 - txtar
形式(複数のテキストファイルをまとめたもの)とかに対して結構 使いやすくなっている - コマンドラインツールのテストでも使えそうなので使ってみたい その他所感