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
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[初心者向け]RSpecで武者修行
RSpecを業務の中で沢山書いて得た知見を共有します。
書き始めのコツや、頻繁に利用するパターンなどを纏めました。
初心者〜中級者向けの内容となっております。
kaede_kuroda
November 26, 2017
More Decks by kaede_kuroda
See All by kaede_kuroda
ActiveRecordのスコープ調整に試行錯誤した
kaede
0
1.6k
mail_viewの一覧表示をハックして使いやすくする
kaede
1
740
Other Decks in Programming
See All in Programming
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
380
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
130
初めての模倣学習とVLA
natsutan
0
460
ALB ログから Trace を気合で繋げる技術
fohte
7
860
Flow は今どうなっているか
mizdra
PRO
0
900
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
670
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
300
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
120
バグを直したら useEffect が消えた
colorful12
3
830
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
110
自分的「カンファレンスの楽しみ方」
syumai
0
190
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
108
250k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Agile that works and the tools we love
rasmusluckow
331
22k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
The Cost Of JavaScript in 2023
addyosmani
55
10k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
Fireside Chat
paigeccino
42
4k
Between Models and Reality
mayunak
4
450
GraphQLとの向き合い方2022年版
quramy
50
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
470
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠