1 require File.dirname(__FILE__) + '/../../spec_helper.rb'
6 it_should_behave_like "sandboxed rspec_options"
8 @main = Class.new do; include Main; end
12 $rspec_story_steps = @original_rspec_story_steps
15 it "should create an Options object" do
16 @main.send(:rspec_options).should be_instance_of(Spec::Runner::Options)
17 @main.send(:rspec_options).should === $rspec_options
20 specify {@main.should respond_to(:describe)}
21 specify {@main.should respond_to(:context)}
23 it "should raise when no block given to describe" do
24 lambda { @main.describe "foo" }.should raise_error(ArgumentError)
27 it "should raise when no description given to describe" do
28 lambda { @main.describe do; end }.should raise_error(ArgumentError)
31 it "should registered ExampleGroups by default" do
32 example_group = @main.describe("The ExampleGroup") do end
33 rspec_options.example_groups.should include(example_group)
36 it "should not run unregistered ExampleGroups" do
37 example_group = @main.describe("The ExampleGroup") do
41 rspec_options.example_groups.should_not include(example_group)
44 it "should create a shared ExampleGroup with share_examples_for" do
45 group = @main.share_examples_for "all things" do end
46 group.should be_an_instance_of(Spec::Example::SharedExampleGroup)
49 describe "#share_as" do
51 $share_as_examples_example_module_number ||= 1
52 $share_as_examples_example_module_number += 1
54 @group_name = "Group#{$share_as_examples_example_module_number}"
57 it "should create a shared ExampleGroup" do
58 group = @main.share_as @group_name do end
59 group.should be_an_instance_of(Spec::Example::SharedExampleGroup)
62 it "should create a constant that points to a Module" do
63 group = @main.share_as @group_name do end
64 Object.const_get(@group_name).should equal(group)
67 it "should bark if you pass it something not-constantizable" do
69 @group = @main.share_as "Non Constant" do end
70 end.should raise_error(NameError, /The first argument to share_as must be a legal name for a constant/)