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
batsを使おう / Let's use bats
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cottondesu
September 16, 2018
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
batsを使おう / Let's use bats
bashのテストフレームワーク「bats」に
ついての簡単な例付きでご紹介
cottondesu
September 16, 2018
More Decks by cottondesu
See All by cottondesu
ヨシケイの撮り忘れを対策したPart2/measures-were-taken-to-prevent-forgetting-to-pick-up-yoshikei-part2
cottondesu
0
46
ヨシケイの取り忘れ対策した / Measures were taken to prevent forgetting to pick up Yoshikei
cottondesu
0
260
開発環境公開ハード編 / Development environment public hardware version
cottondesu
0
180
開発環境公開ソフト編 / Development environment public software edition
cottondesu
0
170
正規表現で心が折れた/Regular expressions broke my heart
cottondesu
0
180
オレオレGASからMakeへの移行を検討してみた / Considering the transition from Ore Ore GAS to Make
cottondesu
0
680
Kanazawa.rb 10周年KPT / Kanazawa.rb 10th Anniversary KPT
cottondesu
0
810
Kanazawa.rb 9周年KPT / Kanazawa.rb 9th Anniversary KPT
cottondesu
0
480
Mac Book Proのバッテリー交換してみた / I replaced the battery in my Mac Book Pro.
cottondesu
0
590
Other Decks in Programming
See All in Programming
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
180
JavaDoc 再入門
nagise
1
370
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
360
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
150
AIで効率化できた業務・日常
ochtum
0
140
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
ふつうのFeature Flag実践入門
irof
8
4k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
570
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
190
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
270
Webフレームワークの ベンチマークについて
yusukebe
0
170
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The agentic SEO stack - context over prompts
schlessera
0
820
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Mind Mapping
helmedeiros
PRO
1
250
Technical Leadership for Architectural Decision Making
baasie
3
420
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
Amusing Abliteration
ianozsvald
1
210
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Become a Pro
speakerdeck
PRO
31
6k
New Earth Scene 8
popppiees
3
2.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Transcript
CBUTΛ͓͏ 2018年09月15日 kanazawa.rb meetup#73
!DPUUPO@EFTV ΏΔͬͱ;ΘͬͱอकΤϯδχΞ ׂ৽ن։ൃ ׂอक ػೳՃɺػೳमਖ਼ɺόάमਖ਼ FUD
CBTIॻ͍ͯ·͔͢ʁ
CBTIͰςετ Ͱ͖Δͷͬͯ·͔ͨ͠ʁ
࣮
CBUTͰग़དྷΔΜͰ͢
CBUTͱ
#BTI"VUPNBUFE 5FTUJOH4ZTUFN IUUQTHJUIVCDPNTTUFQIFOTPOCBUT
CBTIͷςετϑϨʔϜϫʔΫ w ରԠ04 "SDI "MQJOF 6CVOUV 'SFF#4%YBOEY NBD04 8JOEPXT
CBUT
Πϯετʔϧ؆୯
Πϯετʔϧ IPNFCSFXͰΠϯετʔϧ CSFXJOTUBMMCBUTDPSF OQNͰΠϯετʔϧ OQNJOTUBMMHCBUT
͍ํ
w !UFTUͷ\^ͷϒϩοΫ͕ςετର w CBUTϑΝΠϧʹهࡌ w CBUTίϚϯυͰCBUTϑΝΠϧΛ࣮ߦ ͍ํ ϧʔϧ
w TIFMMͷಡΈࠐΈTFUVQ ʹهࡌ w SVOϑΝϯΫγϣϯ໊Ͱ࣮ߦ w SVOͷ݁Ռ#BUTͷΈࠐΈมʹೖΔ ͨΊɼҎԼΛςετ݁Ռͱͯ͠༻ ͍ํ ϧʔϧ
w \TUBUVT^εςʔλείʔυ w \PVUQVU^ग़ྗ݁Ռ w \MJOFT^ग़ྗ݁Ռʢྻʣ
࡞ྫ
VTSCJOFOWCBUT !UFTUBEEJUJPOVTJOHCD\ˡ!UFTUͷ\^ͷϒϩοΫ SFTVMU FDIP cCD <SFTVMUFR> ^ !UFTUBEEJUJPOVTJOHED\ SFTVMU
FDIP QcED <SFTVMUFR> ^ BEEJUJPOCBUT
࣮ߦྫ
CBUTBEEJUJPOCBUT 㾎BEEJUJPOVTJOHCDˡ!UFTUͷ\^ͷϒϩοΫ໊ 㾎BEEJUJPOVTJOHED UFTUT GBJMVSFT
失敗例
#!/usr/bin/env bats @test "addition ng" { result="$(echo 2+1 | bc)"
[ "$result" -eq 4 ] } addition_ng.bats
実行例
CBUTBEEJUJPO@OHCBUT ✗BEEJUJPOOH JOUFTUGJMFBEEJUJPO@OHCBUT MJOF A<SFTVMUFR>GBJMFE UFTU GBJMVSF
ෳͷCBUTΛ࣮ߦՄೳ
CBUT CBUT 㾎BEEJUJPOVTJOHCD 㾎BEEJUJPOVTJOHED ✗BEEJUJPOOH JOUFTUGJMFBEEJUJPO@OHCBUT MJOF A<SFTVMUFR>GBJMFE
UFTUT GBJMVSF
TIFMMಡΈࠐΈྫ
#!/bin/sh add() { echo $(($1 + $2)) } add.sh
#!/usr/bin/env bats setup() { . add.sh } @test "input add
eq 3" { run add 1 2 [ "${status}" -eq 0 ] [ "${output}" == "3" ] } @test "input add ng" { run add 1 4 [ "${status}" -eq 0 ] [ "${output}" == "4" ] } add.bats
実行例
CBUTBEECBUT 㾎JOQVUBEEFR ✗JOQVUBEEOH JOUFTUGJMFBEECBUT MJOF A<\PVUQVU^>GBJMFE UFTUT GBJMVSF
%FNP
w Πϯετʔϧ͍ํ؆୯ w ςετίʔυͷॻ͖ํ؆୯ w CBTIʹΑΔςετϥΠϑΛ࢝Ί·͠ΐ͏ ૯ׅ