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
expect(RSpec::3).to be_coming_soon @Dius_AU Sep...
Search
Jon Rowe
September 12, 2013
Technology
0
200
expect(RSpec::3).to be_coming_soon @Dius_AU September 2013
Repeat of my RSpec 3 talk given to DiusAU
Jon Rowe
September 12, 2013
Tweet
Share
More Decks by Jon Rowe
See All by Jon Rowe
RSpec - Level Up
jonrowe
0
300
Learning From Other Languages - Immutability
jonrowe
0
170
Intro-spec-tion RubyConfAU 2016
jonrowe
0
170
RSpec + Rails Without rspec-rails @ RoRoSyd November 2015
jonrowe
1
260
RSpec 3 and why I `expect(you).to care`
jonrowe
3
640
Upgrading RSpec - RoRoSyd June 14
jonrowe
1
100
def tdd_ios( hint: RubyMotion ) @ #SydInMotion
jonrowe
0
130
Tales Of Interest - RubyConfAU 2014
jonrowe
0
77
RSpec... Your doing it wrong... RoRoSYD Lightning Talk October 2013
jonrowe
0
150
Other Decks in Technology
See All in Technology
組織のSREを推進するためのPlatform EngineeringとEKS / Platform Engineering and EKS to drive SRE in your organization
chmikata
0
190
Datadog の RBAC のすべて
nulabinc
PRO
3
330
ブラックボックス観測に基づくAI支援のプロトコルのリバースエンジニアリングと再現~AIを用いたリバースエンジニアリング~ @ SECCON 14 電脳会議 / Reverse Engineering and Reproduction of an AI-Assisted Protocol Based on Black-Box Observation @ SECCON 14 DENNO-KAIGI
chibiegg
0
160
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
310
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
390
Shifting from MCP to Skills / ベストプラクティスの変遷を辿る
yamanoku
4
680
AIエージェント時代に備える AWS Organizations とアカウント設計
kossykinto
2
350
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
0
240
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
820
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
100
大規模サービスにおける レガシーコードからReactへの移行
magicpod
1
170
オンプレとGoogle Cloudを安全に繋ぐための、セキュア通信の勘所
waiwai2111
3
1.1k
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
Leo the Paperboy
mayatellez
4
1.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
280
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Documentation Writing (for coders)
carmenintech
77
5.3k
The untapped power of vector embeddings
frankvandijk
2
1.6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
Marketing to machines
jonoalderson
1
5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
460
Transcript
.*...........*.*...................................................*..............*...............*..... ...........F....................*...........*.............*.*...........*...........F.*..............F. ..........FF...........**...........*...........**...........*.*..........................*........... *.*...................................................*..............*...............*................F.. ..................*...........*.............*.*...........*...........F.*..............F...........FF. ..........**...........*...........**...........*.*..........................*...........*.*.......... .........................................*..............*...............*................F................ ....*...........*.............*.*...........*...........F.*..............F...........FF...........** ...........*...........**...........*.*..........................*...........*.*....................... ............................*..............*...............*................F....................*.......
....*.............*.*...........*...........F.*..............F...........FF...........**...........* ...........**...........*.*..........................*...........*.*.................................... ...............*..............*...............*................F....................*...........*........ .....*.*...........*...........F.*..............F...........FF...........**...........*...........** ...........*.*..........................*...........*.*.................................................. .*..............*...............*................F....................*...........*.............*.*.... .......*...........F.*..............F...........FF...........**...........*...........**...........* .*..........................*...........*.*...................................................*.......... ....*...............*................F....................*...........*.............*.*...........*.... .......F.*..............F...........FF...........**...........*...........**...........*.*.......... ................*...........*.*...................................................*..............*....... ........*................F....................*...........*.............*.*...........*...........F.*.. ............F...........FF...........**...........*...........**...........*.*........................ ..*...........*.*...................................................*..............*...............*.... ............F....................*...........*.............*.*...........*...........F.*.............. F...........FF...........**...........*...........**...........*.*..........................*........ ...*.*...................................................*..............*...............*................ F....................*...........*.............*.*...........*...........F.*..............F........... FF...........**...........*...........**...........*.*..........................*...........*.*..... ..............................................*..............*...............*................F........... .........*...........*.............*.*...........*...........F.*..............F...........FF.......... .**...........*...........**...........*.*..........................*...........*.*................... ................................*..............*...............*................F....................*... ........*.............*.*...........*...........F.*..............F...........FF...........**......... expect(RSpec::3).to be_coming_soon JON ROWE Thursday, 12 September 13
RSPEC Thursday, 12 September 13
RSPEC Released 0.x. 2005 Thursday, 12 September 13
RSPEC Released 0.x. 2005 Released 1.x. 2007 Thursday, 12 September
13
RSPEC Released 0.x. 2005 Released 1.x. 2007 Released 2.x 2010
Thursday, 12 September 13
RSPEC 2.x Thursday, 12 September 13
RSPEC 2.x 85 Contributors Thursday, 12 September 13
RSPEC 2.x 85 Contributors Modularisation Thursday, 12 September 13
RSPEC 2.x 85 Contributors Modularisation Filters, Meta Data Thursday, 12
September 13
RSPEC 2.x 85 Contributors Modularisation Filters, Meta Data Rails 3
Thursday, 12 September 13
Thursday, 12 September 13
365 Contributors Thursday, 12 September 13
365 Contributors >12340 Commits Thursday, 12 September 13
365 Contributors >12340 Commits > 14800 LOC Thursday, 12 September
13
.*...........*.*...................................................*..............*...............*..... ...........F....................*...........*.............*.*...........*...........F.*..............F. ..........FF...........**...........*...........**...........*.*..........................*........... *.*...................................................*..............*...............*................F.. ..................*...........*.............*.*...........*...........F.*..............F...........FF. ..........**...........*...........**...........*.*..........................*...........*.*.......... .........................................*..............*...............*................F................ ....*...........*.............*.*...........*...........F.*..............F...........FF...........** ...........*...........**...........*.*..........................*...........*.*....................... ............................*..............*...............*................F....................*.......
....*.............*.*...........*...........F.*..............F...........FF...........**...........* ...........**...........*.*..........................*...........*.*.................................... ...............*..............*...............*................F....................*...........*........ .....*.*...........*...........F.*..............F...........FF...........**...........*...........** ...........*.*..........................*...........*.*.................................................. .*..............*...............*................F....................*...........*.............*.*.... .......*...........F.*..............F...........FF...........**...........*...........**...........* .*..........................*...........*.*...................................................*.......... ....*...............*................F....................*...........*.............*.*...........*.... .......F.*..............F...........FF...........**...........*...........**...........*.*.......... ................*...........*.*...................................................*..............*....... ........*................F....................*...........*.............*.*...........*...........F.*.. ............F...........FF...........**...........*...........**...........*.*........................ ..*...........*.*...................................................*..............*...............*.... ............F....................*...........*.............*.*...........*...........F.*.............. F...........FF...........**...........*...........**...........*.*..........................*........ ...*.*...................................................*..............*...............*................ F....................*...........*.............*.*...........*...........F.*..............F........... FF...........**...........*...........**...........*.*..........................*...........*.*..... ..............................................*..............*...............*................F........... .........*...........*.............*.*...........*...........F.*..............F...........FF.......... .**...........*...........**...........*.*..........................*...........*.*................... ................................*..............*...............*................F....................*... ........*.............*.*...........*...........F.*..............F...........FF...........**......... RSPEC 3 Thursday, 12 September 13
SEMVER Thursday, 12 September 13
SEMVER Major Release Thursday, 12 September 13
SEMVER Major Release Breaking Changes Thursday, 12 September 13
SEMVER Major Release Breaking Changes Cleanup deprecations Thursday, 12 September
13
SEMVER Major Release Breaking Changes Cleanup deprecations Changed supported Rubies
Thursday, 12 September 13
RUBY Thursday, 12 September 13
RUBY 1.8.6 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 Thursday, 12 September
13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE Thursday, 12
September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE JRuby 1.8
Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE JRuby 1.8
JRuby 1.9 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE JRuby 1.8
JRuby 1.9 ~RBX 1.8 Thursday, 12 September 13
RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE JRuby 1.8
JRuby 1.9 ~RBX 1.8 ~RBX 1.9 Thursday, 12 September 13
RUBY 1.8.7 1.9.2 1.9.3 2.0.0 REE JRuby 1.8 JRuby 1.9
~RBX 1.8 ~RBX 1.9 Thursday, 12 September 13
Cleanup Thursday, 12 September 13
Cleanup Removal of string evals Thursday, 12 September 13
Cleanup Removal of string evals Removal of workarounds for 1.8.6
Thursday, 12 September 13
Cleanup Removal of string evals Removal of workarounds for 1.8.6
Remove Deprecations Thursday, 12 September 13
Cleanup Removal of string evals Removal of workarounds for 1.8.6
Remove Deprecations Extract Gems Thursday, 12 September 13
Deprecations Thursday, 12 September 13
Deprecations Spec Thursday, 12 September 13
Deprecations Spec stub! / unstub! Thursday, 12 September 13
Deprecations Spec stub! / unstub! mock / stub Thursday, 12
September 13
Deprecations Spec stub! / unstub! mock / stub at_least(0) /
any_number_of times Thursday, 12 September 13
Deprecations Spec stub! / unstub! mock / stub at_least(0) /
any_number_of times let/subject in before(:all) Thursday, 12 September 13
Deprecations Spec stub! / unstub! mock / stub at_least(0) /
any_number_of times let/subject in before(:all) should_not_receive(...).and_return Thursday, 12 September 13
Extract Gems Thursday, 12 September 13
Extract Gems autotest Thursday, 12 September 13
Extract Gems autotest rcov Thursday, 12 September 13
Extract Gems autotest rcov TextMate formatter Thursday, 12 September 13
Extract Gems autotest rcov TextMate formatter its Thursday, 12 September
13
Extract Gems autotest rcov TextMate formatter its collection_matchers Thursday, 12
September 13
Changes Thursday, 12 September 13
Changes New reporter / formatter API Thursday, 12 September 13
Changes New reporter / formatter API New shared_examples behaviour Thursday,
12 September 13
Changes New reporter / formatter API New shared_examples behaviour Block
based DSL yield example Thursday, 12 September 13
Changes New reporter / formatter API New shared_examples behaviour Block
based DSL yield example Verifying doubles Thursday, 12 September 13
Reporter API Thursday, 12 September 13
Reporter API Breaking change Thursday, 12 September 13
Reporter API Breaking change Event / subscription based Thursday, 12
September 13
Reporter API Breaking change Event / subscription based Message Objects
Thursday, 12 September 13
shared_examples Thursday, 12 September 13
shared_examples Currently shared examples are global Thursday, 12 September 13
shared_examples Currently shared examples are global Change to defined in
context Thursday, 12 September 13
shared_examples Currently shared examples are global Change to defined in
context Cross nesting won’t be possible Thursday, 12 September 13
DSL yields example Thursday, 12 September 13
DSL yields example Remove access to #example it { example
} => NoMethodError Thursday, 12 September 13
DSL yields example Remove access to #example it { example
} => NoMethodError Changing to yielded to block it { |example| ... } let(:thing) { |example| ... } Thursday, 12 September 13
Verifying Doubles Thursday, 12 September 13
Verifying Doubles Ported from rspec-fire (@xaviershay) Thursday, 12 September 13
Verifying Doubles Ported from rspec-fire (@xaviershay) Behave as normal in
isolation Thursday, 12 September 13
Verifying Doubles Ported from rspec-fire (@xaviershay) Behave as normal in
isolation Verify method signature when loaded Thursday, 12 September 13
Verifying Doubles Ported from rspec-fire (@xaviershay) Behave as normal in
isolation Verify method signature when loaded instance_double / class_double Thursday, 12 September 13
Verifying Doubles Ported from rspec-fire (@xaviershay) Behave as normal in
isolation Verify method signature when loaded instance_double / class_double as_stubbed_const Thursday, 12 September 13
.*...........*.*...................................................*..............*...............*..... ...........F....................*...........*.............*.*...........*...........F.*..............F. ..........FF...........**...........*...........**...........*.*..........................*........... *.*...................................................*..............*...............*................F.. ..................*...........*.............*.*...........*...........F.*..............F...........FF. ..........**...........*...........**...........*.*..........................*...........*.*.......... .........................................*..............*...............*................F................ ....*...........*.............*.*...........*...........F.*..............F...........FF...........** ...........*...........**...........*.*..........................*...........*.*....................... ............................*..............*...............*................F....................*.......
....*.............*.*...........*...........F.*..............F...........FF...........**...........* ...........**...........*.*..........................*...........*.*.................................... ...............*..............*...............*................F....................*...........*........ .....*.*...........*...........F.*..............F...........FF...........**...........*...........** ...........*.*..........................*...........*.*.................................................. .*..............*...............*................F....................*...........*.............*.*.... .......*...........F.*..............F...........FF...........**...........*...........**...........* .*..........................*...........*.*...................................................*.......... ....*...............*................F....................*...........*.............*.*...........*.... .......F.*..............F...........FF...........**...........*...........**...........*.*.......... ................*...........*.*...................................................*..............*....... ........*................F....................*...........*.............*.*...........*...........F.*.. ............F...........FF...........**...........*...........**...........*.*........................ ..*...........*.*...................................................*..............*...............*.... ............F....................*...........*.............*.*...........*...........F.*.............. F...........FF...........**...........*...........**...........*.*..........................*........ ...*.*...................................................*..............*...............*................ F....................*...........*.............*.*...........*...........F.*..............F........... FF...........**...........*...........**...........*.*..........................*...........*.*..... ..............................................*..............*...............*................F........... .........*...........*.............*.*...........*...........F.*..............F...........FF.......... .**...........*...........**...........*.*..........................*...........*.*................... ................................*..............*...............*................F....................*... ........*.............*.*...........*...........F.*..............F...........FF...........**......... expect(monkey_patches). to be_close_to 0 Thursday, 12 September 13
Monkey Patching Thursday, 12 September 13
Monkey Patching Causes problems with conflicts Thursday, 12 September 13
Monkey Patching Causes problems with conflicts Causes problems with internal
state Thursday, 12 September 13
Monkey Patching Causes problems with conflicts Causes problems with internal
state Clobbered by other monkeys Thursday, 12 September 13
expect syntax object.should matcher(result) object.should_not matcher(result) expect(object).to matcher(result) expect(object).to_not matcher(result)
Thursday, 12 September 13
expect syntax object.should_receive(:message) object.should_not_receive(:message) expect(object).to receive(:message) expect(object).to_not receive(:message) Thursday, 12
September 13
Expect Syntax Thursday, 12 September 13
Expect Syntax The preferred syntax going forward Thursday, 12 September
13
Expect Syntax The preferred syntax going forward Potentially only syntax
by default Thursday, 12 September 13
describe RSpec.describe do it “should not be monkey patchin’” do
expect(monkey_patches).to be_close_to 0 end end Thursday, 12 September 13
More Changes Thursday, 12 September 13
More Changes be_truthy / be_falsey Thursday, 12 September 13
More Changes be_truthy / be_falsey receive_messages( msg: “val”, ... )
Thursday, 12 September 13
More Changes be_truthy / be_falsey receive_messages( msg: “val”, ... )
No more integrated --debugger Thursday, 12 September 13
More Changes be_truthy / be_falsey receive_messages( msg: “val”, ... )
No more integrated --debugger New --dry-run mode Thursday, 12 September 13
More Changes be_truthy / be_falsey receive_messages( msg: “val”, ... )
No more integrated --debugger New --dry-run mode Less spammy deprecations Thursday, 12 September 13
TRANSITION Thursday, 12 September 13
TRANSITION 2.14 (last release of 2.x.) Thursday, 12 September 13
TRANSITION 2.14 (last release of 2.x.) 2.99 (transition) Thursday, 12
September 13
TRANSITION 2.14 (last release of 2.x.) 2.99 (transition) 3.0 (rc
then final) Thursday, 12 September 13
Summary Thursday, 12 September 13
Summary No more 1.8.6 / 1.9.1 Thursday, 12 September 13
Summary No more 1.8.6 / 1.9.1 Less monkey patching (use
expect) Thursday, 12 September 13
Summary No more 1.8.6 / 1.9.1 Less monkey patching (use
expect) New reporters Thursday, 12 September 13
Summary No more 1.8.6 / 1.9.1 Less monkey patching (use
expect) New reporters New shared_example behaviour Thursday, 12 September 13
Summary No more 1.8.6 / 1.9.1 Less monkey patching (use
expect) New reporters New shared_example behaviour Cleaner, leaner, meaner! Thursday, 12 September 13
.*...........*.*...................................................*..............*...............*..... ...........F....................*...........*.............*.*...........*...........F.*..............F. ..........FF...........**...........*...........**...........*.*..........................*........... *.*...................................................*..............*...............*................F.. ..................*...........*.............*.*...........*...........F.*..............F...........FF. ..........**...........*...........**...........*.*..........................*...........*.*.......... .........................................*..............*...............*................F................ ....*...........*.............*.*...........*...........F.*..............F...........FF...........** ...........*...........**...........*.*..........................*...........*.*....................... ............................*..............*...............*................F....................*.......
....*.............*.*...........*...........F.*..............F...........FF...........**...........* ...........**...........*.*..........................*...........*.*.................................... ...............*..............*...............*................F....................*...........*........ .....*.*...........*...........F.*..............F...........FF...........**...........*...........** ...........*.*..........................*...........*.*.................................................. .*..............*...............*................F....................*...........*.............*.*.... .......*...........F.*..............F...........FF...........**...........*...........**...........* .*..........................*...........*.*...................................................*.......... ....*...............*................F....................*...........*.............*.*...........*.... .......F.*..............F...........FF...........**...........*...........**...........*.*.......... ................*...........*.*...................................................*..............*....... ........*................F....................*...........*.............*.*...........*...........F.*.. ............F...........FF...........**...........*...........**...........*.*........................ ..*...........*.*...................................................*..............*...............*.... ............F....................*...........*.............*.*...........*...........F.*.............. F...........FF...........**...........*...........**...........*.*..........................*........ ...*.*...................................................*..............*...............*................ F....................*...........*.............*.*...........*...........F.*..............F........... FF...........**...........*...........**...........*.*..........................*...........*.*..... ..............................................*..............*...............*................F........... .........*...........*.............*.*...........*...........F.*..............F...........FF.......... .**...........*...........**...........*.*..........................*...........*.*................... ................................*..............*...............*................F....................*... ........*.............*.*...........*...........F.*..............F...........FF...........**......... QUESTIONS? Thursday, 12 September 13
.*...........*.*...................................................*..............*...............*..... ...........F....................*...........*.............*.*...........*...........F.*..............F. ..........FF...........**...........*...........**...........*.*..........................*........... *.*...................................................*..............*...............*................F.. ..................*...........*.............*.*...........*...........F.*..............F...........FF. ..........**...........*...........**...........*.*..........................*...........*.*.......... .........................................*..............*...............*................F................ ....*...........*.............*.*...........*...........F.*..............F...........FF...........** ...........*...........**...........*.*..........................*...........*.*....................... ............................*..............*...............*................F....................*.......
....*.............*.*...........*...........F.*..............F...........FF...........**...........* ...........**...........*.*..........................*...........*.*.................................... ...............*..............*...............*................F....................*...........*........ .....*.*...........*...........F.*..............F...........FF...........**...........*...........** ...........*.*..........................*...........*.*.................................................. .*..............*...............*................F....................*...........*.............*.*.... .......*...........F.*..............F...........FF...........**...........*...........**...........* .*..........................*...........*.*...................................................*.......... ....*...............*................F....................*...........*.............*.*...........*.... .......F.*..............F...........FF...........**...........*...........**...........*.*.......... ................*...........*.*...................................................*..............*....... ........*................F....................*...........*.............*.*...........*...........F.*.. ............F...........FF...........**...........*...........**...........*.*........................ ..*...........*.*...................................................*..............*...............*.... ............F....................*...........*.............*.*...........*...........F.*.............. F...........FF...........**...........*...........**...........*.*..........................*........ ...*.*...................................................*..............*...............*................ F....................*...........*.............*.*...........*...........F.*..............F........... FF...........**...........*...........**...........*.*..........................*...........*.*..... ..............................................*..............*...............*................F........... .........*...........*.............*.*...........*...........F.*..............F...........FF.......... .**...........*...........**...........*.*..........................*...........*.*................... ................................*..............*...............*................F....................*... ........*.............*.*...........*...........F.*..............F...........FF...........**......... THANKS @jonrowe (Twitter, GitHub, etc) http://jonrowe.co.uk Thursday, 12 September 13