[rspec-users] Using "return" in rspec test

BJ Clark bj at aboutus.org
Mon May 18 23:47:43 EDT 2009

On May 18, 2009, at 7:51 PM, Gary Lin wrote:

> Hi,
> I am still new to rspec and I wonder if anyone can give me some  
> insight about the problem I have encountered.  I notice whenever I  
> use "return" in my test, it will skip all the examples and exit  
> right out of my test run.  Here is a small example that demonstrate  
> the problem:
> describe "This tests uses return in my code" do
> it "should print Hello" do
>     puts "Hello"         # skip some test scenario if product is in  
> demo mode
>     if @product.demoMode?
>         return;
>    else
>      # rest of the test goes here.
>    end
> end
> it "should print hi" do
>     puts "hi"
> end
> end

It's better to not have an if/else in a test.

Why not try:

describe "This tests uses return in my code" do

   context "in demo mode" do
     something.should be_true

   context "not in demo mode" do
     something.should_not be_true


BJ Clark

> With the above spec, the second "it should print hi" test will never  
> get executed. I found it would be very useful to use "return" to  
> skip some of the test code if a particular scenario occurs.  So I  
> wonder if I cannot use "return" to achieve this, is there any way I  
> can workaround it?
> Thanks,
> --Gary
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

More information about the rspec-users mailing list