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