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
RSpec 勉強会
Search
Tnishikori
August 08, 2017
Technology
0
83
RSpec 勉強会
Tnishikori
August 08, 2017
Tweet
Share
More Decks by Tnishikori
See All by Tnishikori
Apache Sparkやってみたところ
tatsunori_nishikori
0
2.9k
Other Decks in Technology
See All in Technology
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
370
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
800
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.4k
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
350
kargoの魅力について伝える
magisystem0408
0
210
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
20241220_S3 tablesの使い方を検証してみた
handy
4
550
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
110
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Designing for Performance
lara
604
68k
Designing Experiences People Love
moore
138
23k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
It's Worth the Effort
3n
183
28k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Embracing the Ebb and Flow
colly
84
4.5k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Transcript
3 4 1 & $ ษ ڧ ձ 1
* O E F Y Y6OJUPSY4QFD 34QFDͷ֓ཁ 34QFD֦ு 'BDUPSZ(JSMͷ֓ཁ
ࢀߟจݙ 2
Y 6 O J U P S
Y 4 Q F D 3
Y 6 O J U ܥ ͱ Y 4 Q
F D ܥ 4 xUnit xSpec ίϯηϓτ ςετͷظΛಘΔ ͦͷػೳͷৼΔ͍Ͳ͏Ώ͏ ͷ͔ ॻ͖ํ ؔɺϝιουͷΑ͏ͳॻ͖ ํ %4-Λ࠾༻͍ͯ͠Δ͜ͱ͕ଟ͍ ֶशίετ ͍ ߴ͍ Մಡੑ ಡΈͮΒ͍ ಡΈ͍͢
ॻ ͖ ํ ͷ ҧ ͍ lGJ[[zΛฦ͢ϝιουͱzCV[[zΛฦ͢ϝιουΛ࣋ͭ 'J[[#V[[Ϋϥεͷྫ 5
' J Y U V S F T ͱ '
B D U P S Z ( J S M 'JYUVSFT ZNMϑΝΠϧʹϨίʔυͮͭॻ͘ 'BDUPSZ(JSMʹൺΔͱ࣮ߦૣ͍ 7BMJEBUJPO௨Βͳ͍ ΧϥϜ͕૿͑Δͱશ෦ͷϨίʔυΛॻ͖͕͠ൃੜ 'BDUPSZ(JSM ιʔείʔυʹςετσʔλΛهࡌ 7BMJEBUJPO͕௨Δ ֶशίετ͕ߴ͍ ຖճ7BMJEBUJPOΛ௨͢ͱ͍ 6
3 4 Q F D ͷ ֓ ཁ 7
3 4 Q F D ͱ ϓϩάϥϜͷৼΔ͍ #FIBWJPVS Λهड़͢ΔͨΊͷ%4-Λ
ఏڙ͢ΔϑϨʔϜϫʔΫ ϓϩάϥϜΛॻ͘લʹৼΔ͍Λॻ͘#%% ৼۦಈ։ ൃ Λڧ͘ҙࣝ #%%ͷతɺͦͷιϑτΣΞ͕ΘΕΔঢ়گΛઆ໌͢ ΔͨΊͷݴޠΛ୯७Խ͢Δ͜ͱͰίϛϡχέʔγϣϯΛޙ ԡ͢͠Δ͜ͱ 8 Given When Then
ج ຊ త ͳ ͍ ํ ϑΝΠϧ໊ @TQFDSC TQFDҎԼʹςετίʔυΛՃ͍ͯ͘͠
STQFDϑΝΠϧ໊Ͱ࣮ߦ DPWBSBJMTͱΈ߹ΘͤΔͱΧόϨοδΛදࣔ͢Δ͜ͱ Ͱ͖Δ STQFDϑΝΠϧʹSTQFDίϚϯυͷΦϓγϣϯΛॻ͍͓ͯ͘ ͜ͱग़དྷΔ 9
3 4 Q F D ͷ ॻ ࣜ EFTDSJCFςετͷରɺઆ໌ Ϋϥε໊ɺϝιου໊Λهࡌ͢Δͱ(PPE
DPOUFYUςετͷ݅ dͷ߹ɺdͰ͋Δ࣌ JU FYBNQMF ςετͷ༰ɺظ dͰ͋Δࣄ FYQFDUରͷධՁΛ͢Δ TLJQରͷςετΛεΩοϓ͢Δ 10
M F U ςετͷ෦Ͱ༻Ͱ͖ΔมɺؔతͳΠϝʔδ MFUϒϩοΫ\^Ͱهࡌ EFTDSJCF DPOUFYUͰఆٛ͠ɺJUͰݺͼग़͕͠Մೳ MFUԆධՁͰMFUଈ࠲ʹධՁ ໎ͬͨͱ͖MFUʹ͓ͯ͘͠ͱ҆શ 11
ಉ ͡ ς ε τ Λ ά ϧ ʔ ϐ
ϯ ά TIBSFE@FYBNQMFT@GPSͰςετίʔυΛάϧʔϐϯά ɺ JU@CFIBWFT@MJLFͰάϧʔϓΛݺͼग़͠ DPOUFYUͷάϧʔϐϯάTIBSFE@DPOUFYUͱJODMVEF@DPOUFYU Λ͏ 12
M F U ά ϧ ʔ ϐ ϯ
ά 4 B N Q M F 13 άϧʔϐϯάΛߦ͏લ άϧʔϐϯάޙ
ς ε τ ͷ લ ॲ ཧ ͱ ޙ ॲ
ཧ CFGPSFͰલॲཧɺBGUFSͰޙॲཧ TVJUFશςετͷ࣮ߦલޙʹҰճ BMM֤ϒϩοΫ DPOUFYUEFTDSJCF ͷલޙ FBDIશͯͷJUϒϩοΫͷલޙ 14
Α ͘ ͏ ຣ ʔ N B U
D I F S OPU@ UPFRՁ͔Ͳ͏͔ UPCF CF@FNQUZΦϒδΣΫτ͕ۭͰ͋Δ͔ CF ccc ΦϒδΣΫτʹରͯ͠ͷൺֱ CF@OJMΦϒδΣΫτ͕OJM͔Ͳ͏͔ UPJODMVEFྻʹσʔλ͕͋Δ͔ 15
3 4 Q F D ֦ ு 16
3 4 Q F D ͱ Έ ߹ Θ
ͤ Δ ͱ ศ ར STQFDSBJMT 4FMFOJVN 1PMUFSHFJTU $BQZCBSB 17
3 4 Q F D 3 B J M
T DPOUSPMMFS UZQFDPOUSPMMFS HFUQPTUQVUEFMFUFΞΫγϣϯ໊ ύϥϝʔλ SFRVFTU UZQFSFRVFTU HFUQPTUQVUEFMFUF63- ύϥϝʔλ WJFX UZQFWJFX SFOEFSͰWJFXϨϯμϦϯά SFOEFSFEͰϨϯμϦϯάͨ͠WJFXऔಘ BTTFSU@TFMFDUΤϨϝϯτIUNMଐੑʹର͢ΔΞαʔγϣϯ 18
' B D U P S Z ( J S
M ͷ ֓ ཁ 19
' B D U P S Z ( J S
M ʹ ͭ ͍ ͯ ΦϒδΣΫτ͔Βఆٛͨ͠σʔλΛੜͯ͘͠ΕΔ ςετσʔλೖʹΘΕΔ ιʔείʔυͰςετσʔλΛఆٛ͢Δ 20
' B D U P S Z ( J S
M ͷ ఆ ٛ 21
ε τ ϥ ς δ ʔ DSFBUFςετσʔλΛ࡞͢Δ CVJMEςετΫϥεͷ7BMJEBUJPOΛߦͬͨޙͷΠϯελϯ εΛੜͯ͠ฦ͢ TUVC7BMJEBUJPOߦΘͣɺΠϯελϯεੜͷΈ
@MJTUҰׅʹ্هͷετϥςδʔΛ࣮ߦ͢Δ 22
% 4 - USBJUෳͷଐੑΛάϧʔϓԽ͠ɺGBDUPSZʹద༻ग़དྷΔ USBOTJFOUҰ࣌తͳมɺBUUSJCVUFΛఆٛͰ͖ΔɻUSBJU ʹωετ͢Δ͜ͱՄೳ TFRVFODFT࿈൪Λੜ DBMMCBDLTCFGPSF BGUFS CFGPSF
DSFBUF CFGPSF TUVC CFGPSF CVJME BGUFS DSFBUF BGUFS TUVC BGUFS CVJME 23
24
ࢀ ߟ จ ݙ 25
ࢀ ߟ จ ݙ ͑Δ34QFDೖɾͦͷ IUUQRJJUBDPNKODIJUPJUFNTECED STQFDΨΠυϥΠϯ IUUQCFUUFSTQFDTPSHKQ 34QFDͷ EFTDSJCFDPOUFYUFYBNQMFJU
ͷ͍͚ IUUQRJJUBDPNVDIJLPJUFNTEDEGG .JOJUFTUͱ3TQFDɺ'JYUVSFTͱ'JDUPSZ(JSMͷൺֱ IUUQCMPHKOJUPDPNFOUSZ 26