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
180
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
270
Learning From Other Languages - Immutability
jonrowe
0
150
Intro-spec-tion RubyConfAU 2016
jonrowe
0
160
RSpec + Rails Without rspec-rails @ RoRoSyd November 2015
jonrowe
1
240
RSpec 3 and why I `expect(you).to care`
jonrowe
3
630
Upgrading RSpec - RoRoSyd June 14
jonrowe
1
90
def tdd_ios( hint: RubyMotion ) @ #SydInMotion
jonrowe
0
120
Tales Of Interest - RubyConfAU 2014
jonrowe
0
71
RSpec... Your doing it wrong... RoRoSYD Lightning Talk October 2013
jonrowe
0
140
Other Decks in Technology
See All in Technology
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
370
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
300
MCP サーバーの基礎から実践レベルの知識まで
azukiazusa1
9
3.2k
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
200
AIの個性を理解し、指揮する
shoota
3
620
AWSが好きすぎて、41歳でエンジニアになり、AAIを経由してAWSパートナー企業に入った話
yama3133
2
230
Mackerelにおけるインシデント対応とポストモーテム - 現場での工夫と学び
taxin
0
110
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.8k
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
460
JAWS UG AI/ML #32 Amazon BedrockモデルのライフサイクルとEOL対応/How Amazon Bedrock Model Lifecycle Works
quiver
1
780
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
390
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
230
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Automating Front-end Workflow
addyosmani
1371
200k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Site-Speed That Sticks
csswizardry
13
940
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Thoughts on Productivity
jonyablonski
72
4.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
640
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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