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
Ruby2.1のRefinementsで作るSpockライクなテスト構文
Search
Tomohiro Hashidate
August 23, 2014
Programming
12
1.5k
Ruby2.1のRefinementsで作るSpockライクなテスト構文
RefinementsをRSpecで活用してパラメータライズドテスト用のシンタックスを実現する話。
Tomohiro Hashidate
August 23, 2014
Tweet
Share
More Decks by Tomohiro Hashidate
See All by Tomohiro Hashidate
Kafka Streamsで作る10万rpsを支えるイベント駆動マイクロサービス
joker1007
7
2.8k
neovimで作る最新Ruby開発環境2023
joker1007
2
2.8k
ReproのImport/Exportを支えるサーバーレスアーキテクチャ
joker1007
1
1.1k
Ruby on Rails on Lambda
joker1007
13
11k
Sidekiq to Kafka ストリームベースのmicro services
joker1007
4
8.5k
令和時代のRails運用
joker1007
35
14k
TracePointから学ぶRubyVM
joker1007
0
1.6k
What a cool Ruby-2.7 is !
joker1007
2
650
How to extend TracePoint
joker1007
2
330
Other Decks in Programming
See All in Programming
新宿ダンジョンを可視化してみた
satoshi7190
2
250
今、知っておきたい! 生成AIエージェントの世界
elith
3
350
Netty Chicago Java User Group 2024-04-17
sullis
0
170
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
0
860
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
120
Ruby GitHub Packages
bkuhlmann
0
630
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
530
Elm Form Validation
bkuhlmann
0
510
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
920
Featured
See All Featured
What the flash - Photography Introduction
edds
64
11k
Designing Experiences People Love
moore
136
23k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Six Lessons from altMBA
skipperchong
21
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
The Pragmatic Product Professional
lauravandoore
25
5.8k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
How to name files
jennybc
65
93k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Producing Creativity
orderedlist
PRO
337
39k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Transcript
Ruby2.1ͷRefinementsͰ࡞Δ SpockϥΠΫͳςετߏจ ڮཱ༑@joker1007
!KPLFS 3VCZ3BJMT4DBMB ! :PLPIBNBSC 4IJCVZBSC "TBLVTBSC 5%%#$
ؔਓͰ͢
None
Refinements
ར༻Λએݴͨ͠ίϯςΩετͰͷΈ ϝιου͕ఆٛ͞ΕΔ
• Ruby 2.0͔ΒՃ (experimental) • Ruby 2.0ͷrefinementsτοϓϨϕϧͷΈ • Ruby 2.1͔Βexperimental͡Όͳ͘ͳͬͨ
• Ruby 2.1͔ΒΫϥεείʔϓͰએݴͰ͖ΔΑ͏ʹͳͬͨ
Ruby 2.1͔Β͜͏ॻ͚Δ
Կ͕خ͍͠ͷ͔
ΈࠐΈΫϥεͷ ϝιουΛ্ॻ͖ͯ͠ ӨڹൣғΛݶఆͰ͖Δ DSLॻ͖์ʂ
࣮ࡍͦΕͳΓʹ੍ݶ͕…
ຊ
RSpec
Spock
Spock Cool !!
RefinementsͰ RSpecΛͦΕͬΆ͘ॻ͘
rspec-parameterized https://github.com/tomykaira/rspec-parameterized
ͦΕͬΆ͍ʂ
None
ԿΛ͍ͬͯΔͷ͔ • binding_of_callerͰݺͼग़͠ݩͷbindingΛऔಘ͢Δ • evalͯ͠ݺͼग़͠ݩͷExampleGroupͷΠϯελϯε Λऔಘ͢Δ • ݺͼग़͠ݩͷΠϯελϯεʹύϥϝʔλʔอ࣋ͷͨ ΊͷΠϯελϯεมΛಈతʹఆٛ͢Δ •
ΦϒδΣΫτΛϥοϓͯ͠Πϯελϯεมʹύϥ ϝʔλʔΛՃ͍ͯ͘͠ • RSpecͷdescribe࣮Ϋϥεͷఆٛͱಉ͡ͳͷͰ using͕ར༻Ͱ͖Δ
ࠇຐज़ͩΒ͚ ͔͠ΈࠐΈϝιουΛ উखʹ࠶ఆٛ ! Ͱusingͯ͠ͳ͍Օॴʹ ҰӨڹແ͠
·ͱΊ
• Ruby 2.1͔ΒRefinementsͷ੍ݶ͕গ͠؇͘ ͳͬͨ • Refinementsϝιουఆٛͷࣗ༝Λ͛ͯ ͘ΕΔ • ΈࠐΈϝιου໊લඃΓΛؾʹͤͣDSLΛ ఆٛͰ͖Δ
• ·ͩusingએݴͷ੍͕ଟ͍ͷͰɺࠓޙͷਐԽʹ ظ
Let’s Refine !!