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

Gary,
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
    @product.stub!(:demoMode?).and_return(true)
    something.should be_true
  end

  context "not in demo mode" do
    @product.stub!(:demoMode?).and_return(false)
    something.should_not be_true
  end

end

-----
BJ Clark
AboutUs.org




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@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to