[rspec-users] Using RSpec to test Rake tests

David Chelimsky dchelimsky at gmail.com
Tue Apr 27 07:18:48 EDT 2010

On Apr 26, 2010, at 4:29 PM, John Feminella wrote:

> hi guys,
> I'm trying to be diligent about checking my `rake` tasks with RSpec
> tests, but in the process of feeling my way around I seem to have hit
> a wall. I've got a really simple RSpec test that looks like this:
>    # ./test/meta_spec.rb
>    describe "Rake tasks" do
>      require 'rake'
>      before(:each) do
>        @rake = Rake::Application.new
>        @rake.load_rakefile  # => Error here!
>        Rake.application = @rake
>      end
>      after(:each) do
>        Rake.application = nil
>      end
>      it "should have at least one RSpec test to execute" do
>        Rake.application["specs"].spec_files.size.should > 0
>      end
>    end
> I have a simple task called "specs" defined in `./Rakefile.rb` which
> has a Spec::Rake::SpecTask that includes all the `*_spec.rb` files.

This is what the default spec task does, and it is well specified in rspec's own specs. There is a general rule of thumb that says "test your code, not everybody else's." This suggests that you don't really need to be testing this. Any reason you feel the need to?


> If I put the `@rake.load_rakefile` method in (which is my
> understanding of what the Rake docs tell you to do when
> programmatically instantiating Rake::Application instances), I want
> that Rakefile to load. But instead it just bombs out. If I comment it
> out, however, the test fails because the "specs" task is
> (understandably) not defined.
> Where am I going wrong? (I suspect this might be more of a Rake
> question than a RSpec one, but I've posted on this list just in case
> my assessment is off.) Or is the goal of testing Rake tasks better
> served by something other than RSpec?
> Any help is appreciated. Thanks very much!
> ~ jf
> --
> John Feminella
> Principal Consultant, Distilled Brilliance
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

More information about the rspec-users mailing list