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
kaede_kuroda
November 26, 2017
Programming
0
58
[初心者向け]RSpecで武者修行
RSpecを業務の中で沢山書いて得た知見を共有します。
書き始めのコツや、頻繁に利用するパターンなどを纏めました。
初心者〜中級者向けの内容となっております。
kaede_kuroda
November 26, 2017
Tweet
Share
More Decks by kaede_kuroda
See All by kaede_kuroda
ActiveRecordのスコープ調整に試行錯誤した
kaede
0
1.5k
mail_viewの一覧表示をハックして使いやすくする
kaede
1
730
Other Decks in Programming
See All in Programming
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
830
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
200
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.7k
testingを眺める
matumoto
1
140
TDD 実践ミニトーク
contour_gara
1
290
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
290
Kiroで始めるAI-DLC
kaonash
2
580
print("Hello, World")
eddie
1
520
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
210
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
460
RDoc meets YARD
okuramasafumi
4
170
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
630
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Scaling GitHub
holman
463
140k
Building an army of robots
kneath
306
46k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
The Invisible Side of Design
smashingmag
301
51k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
4 Signs Your Business is Dying
shpigford
184
22k
Done Done
chrislema
185
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Transcript
34QFDͰऀमߦ
2 Fablic, inc. Software Engineer ࠇాɹ෨ kaede-kuroda ࣗݾհ ओʹαʔόʔαΠυͷ։ൃΛ୲ ্݄०ʹδϣΠϯ
3 ϑϦϧ '3*- ʮཉ͍͠ʯ͕Έ͔ͭΔϑϦϚΞϓϦ
4 ࠓͷ͓ͳ͠ 34QFDΛࢁॻ͍ͯಘͨݟ ✖
5 ࠓͷ͓ͳ͠ ݩʑ34QFDʹۤखҙ͕ࣝ͋ͬͨ ɹɾΑ͔͘Βͳ͍͔͔࣌ؒΔ ɹɾػೳ࣮͕༏ઌʹͳΓ͕ͪ ɹɹʢͰͨ·ʹॻ͘ͱԸܙΛड͚Δ͜ͱʣ
6 ࠓͷ͓ͳ͠ ݩʑ34QFDʹۤखҙ͕ࣝ͋ͬͨ ɹʻςετࢁॻ͖·͠ΐ͏ʂ ্࢘
7 ࠓͷ͓ͳ͠ ॻͧ͘Υʂ Ͳ͏ͬͯʁʁ
8 ࠓͷ͓ͳ͠ '3*-Ͱ࣮ࡍʹಈ͍͍ͯΔػೳͷ ςετΧόϨοδΛʹ͢Δʂ ɾͱʹ͔͘ࢁςετΛॻ͍ͨ ɾ͍͠෦ͲΜͲΜڭ͑ͯΒͬͨ ͦΜͳ͜ΜͳͰ̍िؒޙɾɾɾ
9 ࠓͷ͓ͳ͠ ͋Δఔॻ͚Δ༷ʹͳͬͨʂ ɾύλʔϯ͕Θ͔Δ༷ʹͳͬͨ ɾॻ͕࣌ؒ͘େ෯ʹॖ͞Εͨ ɾ಄๊͑Δࣄ͕ݮͬͨ ۤखҙ͍ࣝͩͿݮͬͨʂ ֪ΛଧͪഁΔͻΑ͜ͷਤ
ͦͷதͰಘͨ5JQT͔Β ར༻ස͕ߴ͍ͷΛڞ༗ 10
11 ຊͷ͓ॻ͖ ɾ֮͑ͯศརͳ5JQTू ɾٙʹࢥͬͯௐͨࣄ ɾྫ֎ͷςετ ɾΞΫηε͠ʹ͍͘ϝιουͷςετ
֮͑ͯศརͳ5JQTू 12
13 ֮͑ͯศརͳ5JQTू 34QFDͰಛఆͷߦ͚ͩΛςετ͢Δ ςετͷमਖ਼ͯ͠Δ࣌ͳͲ શ෦࣮ߦ͢Δͱ͔͔࣌ؒΔ࣌ʹศར CVOEMFFYFDSTQFDQBUIUPUFTU@TQFDSC
14 ֮͑ͯศརͳ5JQTू ΦϒδΣΫτͷଐੑΛవΊͯνΣοΫ͢Δ FYQFDU DPOUBDU UPIBWF@BUUSJCVUFT GJSTUOBNFb+BOF ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹMBTUOBNFb4NJUI
ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹOBNF+BOF4NJUI FYQFDU DPOUBDUGJSTUOBNF UPFRb+BOF FYQFDU DPOUBDUMBTUOBNF UPFR`4NJUI` FYQFDU DPOUBDUOBNF UPFR`+BOF4NJUI
15 ֮͑ͯศརͳ5JQTू ςετΛαΫαΫॻ͖࢝ΊΔํ๏ EFTDSJCFbςετͷର`EP ɹDPOUFYUb݅ʢೖྗ͕̋ͳͱ͖ʣ`EP ɹɹJUb݁ՌʢUSVF͕ฦΔʣ`EP ɹɹFOE ɹFOE FOE தΛॻ͔ͳ͍Ͱςετ͍ͨ͠༰ΛฒΔ
ʢ಄͕ർΕͳָͯ͘ʣ
16 ֮͑ͯศརͳ5JQTू ςετΛαΫαΫॻ͖࢝ΊΔํ๏ EFTDSJCFbςετͷର`EP ɹDPOUFYUb݅ʢೖྗ͕̋ͳͱ͖ʣ`EP ɹɹJUb݁ՌʢUSVF͕ฦΔʣ`EP ɹɹFOE ɹFOE ɹDPOUFYUb݅ʢೖྗ͕ʷͳͱ͖ʣ`EP ɹɹJUb݁ՌʢGBMTF͕ฦΔʣ`EP
ɹɹFOE ɹFOE FOE
17 ֮͑ͯศརͳ5JQTू ͦͦԿΛςετͯ͠ྑ͍͔͔Βͳ͍߹ Ϟσϧͷςετ ֤ϝιου͕ظ௨ΓͷΛฦ͔͢ ֤ϝιου͕ʢ%#֎෦ग़ྗʹରͯ͠ʣظ௨Γͷಈ࡞Λ͍ͯ͠Δ͔ όϦσʔγϣϯ͕ਖ਼͘͠ઃఆ͞Ε͍ͯΔ͔ ίϯτϩʔϥʔͷςετ ֤ΞΫγϣϯ͕Ϗϡʔʹ͕͢ਖ਼͍͔͠ ΞΫγϣϯ͕ظ௨ΓͷεςʔλείʔυΛฦ͔͢
ΞΫγϣϯ͕ظ௨ΓͷςϯϓϨʔτΛબ͍ͯ͠Δ͔ Ϗϡʔͷςετ ༩͑ΒΕͨ݅ʹԠͨ͡ද͕ࣔ͞Ε͍ͯΔ͔ʢϩάΠϯঢ়ଶୀձͳͲʣ ɹɹɹɹɹɹɹɹɹɹɹɹɹ<ࢀߟɿύʔϑΣΫτ3VCZPO3BJMT>
18 ֮͑ͯศརͳ5JQTू ॻ͍ͨޙʹߟ͑Δࣄ ɾ4VCKFDUͰవΊΒΕΔॴ͕ແ͍͔ʁ ɾJT@FYQFDUFEͰίϯύΫτʹͰ͖ͳ͍͔ʁ ʢແཧʹ͏ඞཁͳ͍ʣ
19 ֮͑ͯศརͳ5JQTू ॻ͍ͨޙʹߟ͑Δࣄ ɹTVCKFDU\)PHFJT@OVNCFS OVNCFS ^ DPOUFYUOVNCFS͕ͷจࣈྻͷͱ͖EP MFU OVNCFS \^
JU\JT@FYQFDUFEUPFR^ FOE ɹDPOUFYUOVNCFS͕จࣈྻͷͱ͖EP MFU OVNCFS \bB`^ JU\JT@FYQFDUFEUPCF@OJM^ FOE
ٙʹࢥͬͯௐͨࣄ 20
21 ֮͑ͯศརͳ5JQTू UPCFʙUPFRʙɹϚονϟͷ͍͚ CFΠϯελϯεΛൺֱ FRΛൺֱ
22 ֮͑ͯศརͳ5JQTू UPCFʙUPFRʙɹϚονϟͷ͍͚ CFΛ͏߹ ɹશʹಉ͡ΠϯελϯεΛൺֱ ɹUSVFGBMTFͳͲΛൺֱ FRΛ͏߹ ɹͦΕҎ֎
23 ֮͑ͯศརͳ5JQTू JT@FYQFDUFE4VCKFDUɹͷҧ͍ ௐͨΒதJT@FYQFDUFEͷத TVCKFDUͩͬͨ EFGJT@FYQFDUFE FYQFDU TVCKFDU FOE
ྫ֎ͷςετ 24
25 ֮͑ͯศརͳ5JQTू ྫ֎ͷςετ ɾϝιου͕ྫ֎Λग़͢͜ͱΛݕূ ɾϝιουͰྫ֎͕ൃੜͨ͠߹ͷڍಈΛݕূ
26 ֮͑ͯศརͳ5JQTू ϝιου͕ྫ֎Λग़͢͜ͱΛݕূ FYQFDU\TVCKFDU^UPSBJTF@FSSPS 3VOUJNF&SSPS SBJTF͢Δͱجຊతʹ3VOUJNF&SSPS͔ͩΒ ͍ͭ͜ΕͬͯΔ
27 ֮͑ͯศརͳ5JQTू ϝιουͰྫ֎͕ൃੜͨ͠߹ͷڍಈΛݕূ DPOUFYUྫ֎͕ൃੜͨ͠߹EP CFGPSFEP BMMPX 6TFS UPSFDFJWF GJOE BOE@SBJTF
3VOUJNF&SSPS FOE JUGBMTF͕ฦ٫͞ΕΔEP FYQFDU ςετ UPCFGBMTF FOE FOE ϞοΫΛ͓͏ʂ
28 ֮͑ͯศརͳ5JQTू Ͳ͜ͰϑοΫ͢Δ͔దʹߟ͑Δ ͍͍ײ͡ͷॴ͕ͳ͔ͬͨ߹ GJOEͷݕࡧ෦ͰҾֻͬΔࣄ͕ଟ͍ ͦͷ߹Τϥʔ3VOUJNF&SSPSͰͳ͘ "DUJWF3FDPSE3FDPSE/PU'PVOEΛࢦఆ͢Δ
ΞΫηε͠ʹ͍͘ ϝιουͷςετ 29
30 ֮͑ͯศརͳ5JQTू 1SJWBUFϝιουΛςετ͢Δํ๏ TFOEϝιουΛ͏ʂ FYQFDU )PHFTFOE GVHB@NFUIPE UPFR
31 ֮͑ͯศརͳ5JQTू NPEVMFͷςετ τοϓϨϕϧͰJODMVEF͢Δͷμϝʂ 3VCZ্Ͱଘࡏ͢Δͯ͢ͷΦϒδΣΫτ ͱ͔zBzͱ͔ ʹϝιουΛੜ͢͜ͱʹͳΔ SFRVJSFSBJMT@IFMQFS JODMVEF)PHFGVHBμϝͳྫ
32 ֮͑ͯศརͳ5JQTू NPEVMFͷςετ EFTDSJCFGVHBGVHBEP MFU IPHF \4USVDUOFX IPHF \JODMVEFIPHFIPHF^^ dলུd
IPHFNFUIPE bUFTU ࢀߟ 3BJMTͷDPODFSOTͳNPEVMFͷςετΛSTQFDͰॻ͘ํ๏ IUUQTRJJUBDPNUR@KBQQZJUFNTFECGB
33 ֮͑ͯศརͳ5JQTू NPEVMFͷςετ ɺ͢ͰʹରͷNPEVMFΛݺͼग़͍ͯ͠Δ Ϋϥε͕͋ΕͦΕΛ͏ DMBTT)PHF"DUJWF3FDPSE#BTF JODMVEF'VHB FOE 3TQFD
)PHF.FUIPE@JO@'VHB
·ͱΊ 34
35 ·ͱΊ ςετॻ͘ͱ͖ʹΜͩ͜ͱ େମύλʔϯΛ֮͑ͯղܾͰ͖ͨ ͋ͱԿΛςετ͢Δ͔Λҙࣝͨ͠
36 ·ͱΊ ໎͏࣌ؒΛݮΒ͢ίπ ɹҙਤ͞Ε͍ͨํΛ͢Δ ɹʢԿΛςετ͢Δ͖ͳͷ͔ҙࣝ͢Δʣ ɹύλʔϯΛ֮͑Εා͘ͳ͍ ɹʢେମಉ͡ύλʔϯͰ͍͚Δɻكʹมͳͷ͕͋Δʣ ɹಓےΛཱͯͯਂ͘ߟ͑ͣαΫαΫॻ͖ग़͢ ɹʢ༨༟͕͋Ε%3:ʹ͢Ε͍͍ͱࢥ͏ʣ
ࢀߟʹͳΕ͍Ͱ͢ʂ 37
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠