expect(RSpec::3).to be_coming_soon #RoRoSyd May 2013

expect(RSpec::3).to be_coming_soon #RoRoSyd May 2013

D79fc498d7a5b2ce12180890247476f0?s=128

Jon Rowe

May 14, 2013
Tweet

Transcript

  1. .*...........*.*...................................................*..............*...............*..... ...........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
  2. RSPEC

  3. RSPEC Released 0.x. 2005

  4. RSPEC Released 0.x. 2005 Released 1.x. 2007

  5. RSPEC Released 0.x. 2005 Released 1.x. 2007 Released 2.x 2010

  6. RSPEC 2.x

  7. RSPEC 2.x 85 Contributors

  8. RSPEC 2.x 85 Contributors Modularisation

  9. RSPEC 2.x 85 Contributors Modularisation Filters, Meta Data

  10. RSPEC 2.x 85 Contributors Modularisation Filters, Meta Data Rails 3

  11. None
  12. 365 Contributors

  13. 365 Contributors >12340 Commits

  14. 365 Contributors >12340 Commits > 14800 LOC

  15. .*...........*.*...................................................*..............*...............*..... ...........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
  16. SEMVER

  17. SEMVER Major Release

  18. SEMVER Major Release Breaking Changes

  19. SEMVER Major Release Breaking Changes Cleanup deprecations

  20. SEMVER Major Release Breaking Changes Cleanup deprecations Changed supported Rubies

  21. RUBY

  22. RUBY 1.8.6

  23. RUBY 1.8.6 1.8.7

  24. RUBY 1.8.6 1.8.7 1.9.1

  25. RUBY 1.8.6 1.8.7 1.9.1 1.9.2

  26. RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3

  27. RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0

  28. RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE

  29. RUBY 1.8.6 1.8.7 1.9.1 1.9.2 1.9.3 2.0.0 REE JRuby 1.8

  30. 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
  31. 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
  32. 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
  33. 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
  34. Cleanup

  35. Cleanup Removal of string evals

  36. Cleanup Removal of string evals Removal of workarounds for 1.8.6

  37. Cleanup Removal of string evals Removal of workarounds for 1.8.6

    Remove Deprecations
  38. Cleanup Removal of string evals Removal of workarounds for 1.8.6

    Remove Deprecations Extract Gems
  39. Deprecations

  40. Deprecations Spec

  41. Deprecations Spec stub! / unstub!

  42. Deprecations Spec stub! / unstub! mock / stub

  43. Deprecations Spec stub! / unstub! mock / stub at_least(0) /

    any_number_of times
  44. Deprecations Spec stub! / unstub! mock / stub at_least(0) /

    any_number_of times let/subject in before(:all)
  45. Extract Gems

  46. Extract Gems autotest

  47. Extract Gems autotest rcov

  48. Extract Gems autotest rcov TextMate formatter

  49. Extract Gems autotest rcov TextMate formatter its

  50. Changes

  51. Changes New reporter / formatter API

  52. Changes New reporter / formatter API shared_examples

  53. Reporter API

  54. Reporter API Breaking change

  55. Reporter API Breaking change Event / subscription based

  56. Reporter API Breaking change Event / subscription based Message Objects

  57. shared_examples

  58. shared_examples Currently shared examples are global

  59. shared_examples Currently shared examples are global Change to defined in

    context
  60. shared_examples Currently shared examples are global Change to defined in

    context Cross nesting won’t be possible
  61. .*...........*.*...................................................*..............*...............*..... ...........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
  62. Monkey Patching

  63. Monkey Patching Causes problems with conflicts

  64. Monkey Patching Causes problems with conflicts Causes problems with internal

    state
  65. Monkey Patching Causes problems with conflicts Causes problems with internal

    state Clobbered by other monkeys
  66. expect syntax object.should matcher(result) object.should_not matcher(result) expect(object).to matcher(result) expect(object).to_not matcher(result)

  67. expect syntax object.should_receive(:message) object.should_not_receive(:message) expect(object).to receive(:message) expect(object).to_not receive(:message)

  68. Expect Syntax

  69. Expect Syntax The preferred syntax going forward

  70. Expect Syntax The preferred syntax going forward Potentially only syntax

    by default
  71. describe RSpec.describe do it “should not be monkey patchin’” do

    expect(monkey_patches).to be_close_to 0 end end
  72. TRANSITION

  73. TRANSITION 2.14 (last release of 2.x.)

  74. TRANSITION 2.14 (last release of 2.x.) 2.99 (transition)

  75. TRANSITION 2.14 (last release of 2.x.) 2.99 (transition) 3.0 (rc

    then final)
  76. Summary

  77. Summary No more 1.8.6 / 1.9.1

  78. Summary No more 1.8.6 / 1.9.1 Less monkey patching (use

    expect)
  79. Summary No more 1.8.6 / 1.9.1 Less monkey patching (use

    expect) New reporters
  80. Summary No more 1.8.6 / 1.9.1 Less monkey patching (use

    expect) New reporters New shared_example behaviour
  81. Summary No more 1.8.6 / 1.9.1 Less monkey patching (use

    expect) New reporters New shared_example behaviour Cleaner, leaner, meaner!
  82. .*...........*.*...................................................*..............*...............*..... ...........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?
  83. .*...........*.*...................................................*..............*...............*..... ...........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