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
60
[初心者向け]RSpecで武者修行
RSpecを業務の中で沢山書いて得た知見を共有します。
書き始めのコツや、頻繁に利用するパターンなどを纏めました。
初心者〜中級者向けの内容となっております。
kaede_kuroda
November 26, 2017
Tweet
Share
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
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.2k
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
410
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
130
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
550
株式会社 Sun terras カンパニーデック
sunterras
0
2.1k
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
830
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
710
ロボットのための工場に灯りは要らない
watany
10
2.5k
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
130
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
200
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
270
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
250
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
250
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
The SEO identity crisis: Don't let AI make you average
varn
0
410
Are puppies a ranking factor?
jonoalderson
1
3.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
WCS-LA-2024
lcolladotor
0
480
Design in an AI World
tapps
0
170
Between Models and Reality
mayunak
2
230
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠