$30 off During Our Annual Pro Sale. View Details »
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
190
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
280
Learning From Other Languages - Immutability
jonrowe
0
160
Intro-spec-tion RubyConfAU 2016
jonrowe
0
160
RSpec + Rails Without rspec-rails @ RoRoSyd November 2015
jonrowe
1
250
RSpec 3 and why I `expect(you).to care`
jonrowe
3
630
Upgrading RSpec - RoRoSyd June 14
jonrowe
1
92
def tdd_ios( hint: RubyMotion ) @ #SydInMotion
jonrowe
0
130
Tales Of Interest - RubyConfAU 2014
jonrowe
0
73
RSpec... Your doing it wrong... RoRoSYD Lightning Talk October 2013
jonrowe
0
140
Other Decks in Technology
See All in Technology
MLflowダイエット大作戦
lycorptech_jp
PRO
1
140
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
430
AI時代の新規LLMプロダクト開発: Findy Insightsを3ヶ月で立ち上げた舞台裏と振り返り
dakuon
0
230
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
260
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
910
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
460
Python 3.14 Overview
lycorptech_jp
PRO
1
120
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
240
Amazon Quick Suite で始める手軽な AI エージェント
shimy
0
560
通勤手当申請チェックエージェント開発のリアル
whisaiyo
2
160
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
430
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
1
490
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
16
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
A better future with KSS
kneath
240
18k
Un-Boring Meetings
codingconduct
0
160
Art, The Web, and Tiny UX
lynnandtonic
304
21k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
The browser strikes back
jonoalderson
0
60
Tell your own story through comics
letsgokoyo
0
740
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
110
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
11
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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