[rspec-devel] [ANN] RSpec-1.1.0 is released

David Chelimsky dchelimsky at gmail.com
Fri Dec 14 09:09:16 EST 2007


On Dec 14, 2007 8:05 AM, Scott Taylor <mailing_lists at railsnewbie.com> wrote:
>
> Congrats, David.  You've worked really hard on this one, and it shows!

Thanks Scott, but Brian and Dan really deserve a LOT of credit for
this one. Plus the plethora of patches, etc.

Cheers,
David

>
> Scott
>
>
>
> On Dec 14, 2007, at 12:58 AM, David Chelimsky wrote:
>
> > The RSpec Development Team is pleased as glug (that's kind of like
> > punch, but more festive) to announce RSpec-1.1.0.
> >
> > Thanks to all who have contributed patches over the last few months.
> > Big thanks to Dan North and Brian Takita for their important work on
> > this release. Dan contributed his rbehave framework which is now the
> > Story Runner. Brian patiently did a TON of refactoring around
> > interoperability with Test::Unit, and the result is a much cleaner
> > RSpec core, and a clean adapter model that gets loaded when Test::Unit
> > is on the path.
> >
> > == RSpec 1.1 brings four significant changes for RSpec users:
> >
> > * The RSpec Story Runner
> > * Nested Example Groups
> > * Support for Rails 2.0.1
> > * Test::Unit interoperability
> >
> > == Story Runner
> >
> > The RSpec Story Runner is Dan North's rbehave framework merged into
> > RSpec. The Story Runner is a framework for expressing high level
> > requirements in the form of executable User Stories with Scenarios
> > that represent Customer Acceptance Tests.
> >
> > RSpec 1.1 also ships with a Ruby on Rails extension called RailsStory,
> > which lets you write executable user stories for your rails apps as
> > well.
> >
> > == Nested Example Groups
> >
> > Now you can nest groups to organize things a bit better:
> >
> > describe RubyDeveloper do
> >
> >   before(:each) do
> >     @ruby_developer = RubyDeveloper.new
> >   end
> >
> >   describe "using RSpec 1.1.0" do
> >
> >     before(:each) do
> >       @ruby_developer.use_rspec('1.1.0')
> >     end
> >
> >     it "should be able to nest example groups" do
> >       @ruby_developer.should be_able_to_nest_example_groups
> >     end
> >
> >   end
> >
> >   describe "using RSpec 1.0.1" do
> >
> >     before(:each) do
> >       @ruby_developer.use_rspec('1.0.8')
> >     end
> >
> >     it "should not be able to nest example groups" do
> >       @ruby_developer.should_not be_able_to_nest_example_groups
> >     end
> >
> >   end
> >
> > end
> >
> > Running this outputs:
> >
> > RubyDeveloper using RSpec 1.1.0
> > - should be able to nest example groups
> >
> > RubyDeveloper using RSpec 1.0.8
> > - should not be able to nest example groups
> >
> > == Support for Rails 2.0.1
> >
> > gem install rails
> > rails myapp
> > ruby script/install http://rspec.rubyforge.org/svn/tags/REL_1_1_0/
> > rspec
> > ruby script/install http://rspec.rubyforge.org/svn/tags/REL_1_1_0/
> > rspec_on_rails
> > script/generate rspec
> >
> > == Test::Unit Interoperability
> >
> > Contrary to popular belief, Spec::Rails, RSpec's Ruby on Rails plugin,
> > has been a Test::Unit wrapper since the the 0.7 release in November of
> > 2006. RSpec 1.1 ups the ante though, offering a smooth transition from
> > Test::Unit to RSpec with or without Rails:
> >
> > 1. Start with a TestCase:
> >
> > require 'test/unit'
> >
> > class TransitionTest < Test::Unit::TestCase
> >   def test_should_be_smooth
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup"
> >     )
> >     assert_equal "really smooth", transition.in_practice
> >   end
> > end
> > 2. Require 'spec'
> >
> > require 'test/unit'
> > require 'spec'
> >
> > class TransitionTest < Test::Unit::TestCase
> >   def test_should_be_smooth
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup"
> >     )
> >     assert_equal "really smooth", transition.in_practice
> >   end
> > end
> > 3. Convert TestCase to ExampleGroup
> >
> > require 'test/unit'
> > require 'spec'
> >
> > describe "transitioning from TestCase to ExampleGroup" do
> >   def test_should_be_smooth
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup"
> >     )
> >     assert_equal "really smooth", transition.in_practice
> >   end
> > end
> > 4. Convert test methods to examples
> >
> > require 'test/unit'
> > require 'spec'
> >
> > describe "transitioning from TestCase to ExampleGroup" do
> >   it "should be smooth" do
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup"
> >     )
> >     assert_equal "really smooth", transition.in_practice
> >   end
> > end
> > 5. Convert assertions to expectations
> >
> > require 'test/unit'
> > require 'spec'
> >
> > describe "transitioning from TestCase to ExampleGroup" do
> >   it "should be smooth" do
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup")
> >     transition.in_practice.should == "really smooth"
> >   end
> > end
> > 6. Un-require test/unit
> >
> > require 'spec'
> >
> > describe "transitioning from TestCase to ExampleGroup" do
> >   it "should be smooth" do
> >     transition = Transition.new(
> >       :from => "Test::Unit::TestCase",
> >       :to => "Spec::ExampleGroup"
> >     )
> >     transition.in_practice.should == "really smooth"
> >   end
> > end
> > At every one of these steps after step 2, you can run the file with
> > the ruby command and you'll be getting RSpec's developer friendly
> > output. This means that you can transition things as gradually as you
> > like: no wholesale changes.
> >
> > That's the story. Thanks again to all who contributed and to all who
> > continue do so.
> > _______________________________________________
> > rspec-devel mailing list
> > rspec-devel at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-devel
>
> _______________________________________________
> rspec-devel mailing list
> rspec-devel at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-devel
>


More information about the rspec-devel mailing list