Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The JSON generator tool based on Google Spreads...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
takuoki
December 18, 2018
Technology
830
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The JSON generator tool based on Google Spreadsheets
takuoki
December 18, 2018
Other Decks in Technology
See All in Technology
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
750
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
310
今さら理解するウェブフォントver.2026
takanorip
3
710
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
130
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
100
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
380
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
130
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
We Have a Design System, Now What?
morganepeng
55
8.4k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Code Reviewing Like a Champion
maltzj
529
40k
Scaling GitHub
holman
464
140k
Transcript
Goでテスト仕様書からJSONファイルを 自動生成するツールを作ったよ - The JSON generator tool for tests 2018-12-18
golang.tokyo #20 LT Takuo OKI
About me 2 • もともと7年くらいSIer。 • いまはVELTRAという旅行関連の会社でGoを書いています。 • 技術ブログを気まぐれに書いています。 Let’s
search “veltra engineering blog”! GitHub: takuoki Twitter: takuokl ←”i”じゃなくて”l”!
Do you write tests? テスト、書いてますか?
Unit test is so good! 4 Goはユニットテストが簡単に書けて、メンテナンスもしやすい。
How about integration test? 5 インテグレーションテストについてはあまり資料がない。。 例)APIのリクエストとレスポンスをまるごと確認したい。 → データが大きいのでGoのソースに テストデータを書くわけにもいかない。。
I’ve created a tool for such cases! 6 Google Spreadsheetに書いたテストケースから、
JSONファイルを作成するツール”testmtx”を作った! JSONファイルをGoで読み込めば、”go test”でテストもできる! Google Spreadsheet JSON files for test testmtx
How to write spreadsheet 7
How to write spreadsheet 8 JSONのプロパティ定義を書く
How to write spreadsheet 9 テストケース毎のデータを埋める ※1列=1テストケース
How to write spreadsheet 10 object型やarray型は"*new"と書く
How to write spreadsheet 11 1テストケースで複数の JSONファイルを作成 { "num_key": 101,
"string_key": "string value 101", "bool_key": true, "object_key": { "key1": 201, "key2": "string value 201" }, "array_key": [ { "key3": 301, "key4": "string value 301" }, { "key3": 401, "key4": "string value 401" } ] } { "status": “success”, "code": 200 }
How to output files 12 コマンドラインツールで、シートIDを指定すればOK! • 設定ファイルで、シートIDのエイリアスを定義できる。 • Google
Sheets APIを使用しているので、OAuth認証が必要。 $ testmtx out -s 1Zs2HI7x8eQ05ICoaBdv1I1ny_KtmtrE05Lyb7OwYmdE output completed successfully!
Supplemental features 13 • JSONのプロパティ定義をいちから書くのは面倒なので、 Goの構造体を読み込んでテキスト出力できる。 • プロパティ定義の階層を調整できる。 • 設定ファイルで対象外のシートを指定できる。
• YAMLも一応サポートしている。
Conclusion 14 • Goでのツールの実装について ◦ ASTを初めて触って楽しかった! • 良かった点 ◦ テストデータが膨大になっても、なんとかメンテナンスできる。
◦ 単純にJSONを吐き出すツールなので汎用的(テスト以外でも可)! • 気になる点 / 反省点 ◦ Sheet自体はGit管理外なので、ブランチころころ変えてると気になる。 ◦ テストのツールなのにテストコードをかけていない!! • その他 ◦ 反応があったら改善するモチベーションに! https://github.com/takuoki/testmtx
End