1 require File.dirname(__FILE__) + '/../../spec_helper.rb'
5 # describe "Spec::Example::ExampleRunner", "#run", :shared => true do
7 # @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
8 # @reporter = ::Spec::Runner::Reporter.new(@options)
9 # @options.reporter = @reporter
10 # @example_group_class = Class.new(ExampleGroup) do
11 # plugin_mock_framework
12 # describe("Some Examples")
16 # def create_runner(example_definition)
17 # example = @example_group_class.new(example_definition)
18 # runner = ExampleGroup.new(@options, example)
19 # runner.stub!(:verify_mocks)
20 # runner.stub!(:teardown_mocks)
25 # describe ExampleRunner, "#run with blank passing example" do
26 # it_should_behave_like "Spec::Example::ExampleRunner#run"
29 # @e = @example_group_class.it("example") {}
30 # @runner = create_runner(@e)
33 # it "should send reporter example_started" do
34 # @reporter.should_receive(:example_started).with(equal(@e))
38 # it "should report its name for dry run" do
39 # @options.dry_run = true
40 # @reporter.should_receive(:example_finished).with(equal(@e), nil)
44 # it "should report success" do
45 # @reporter.should_receive(:example_finished).with(equal(@e), nil)
50 # describe ExampleRunner, "#run with a failing example" do
51 # predicate_matchers[:is_a] = [:is_a?]
52 # it_should_behave_like "Spec::Example::ExampleRunner#run"
55 # @e = @example_group_class.it("example") do
58 # @runner = create_runner(@e)
61 # it "should report failure due to failure" do
62 # @reporter.should_receive(:example_finished).with(
64 # is_a(Spec::Expectations::ExpectationNotMetError)
70 # describe ExampleRunner, "#run with a erroring example" do
71 # it_should_behave_like "Spec::Example::ExampleRunner#run"
74 # @error = error = NonStandardError.new("in body")
75 # @example_definition = @example_group_class.it("example") do
78 # @runner = create_runner(@example_definition)
81 # it "should report failure due to error" do
82 # @reporter.should_receive(:example_finished).with(
83 # equal(@example_definition),
89 # it "should run after_each block" do
90 # @example_group_class.after(:each) do
91 # raise("in after_each")
93 # @reporter.should_receive(:example_finished) do |example_definition, error|
94 # example_definition.should equal(@example_definition)
95 # error.message.should eql("in body")
101 # describe ExampleRunner, "#run where after_each fails" do
102 # it_should_behave_like "Spec::Example::ExampleRunner#run"
105 # @example_ran = example_ran = false
106 # @example_definition = @example_group_class.it("should not run") do
109 # @runner = create_runner(@example_definition)
110 # @example_group_class.after(:each) { raise(NonStandardError.new("in after_each")) }
113 # it "should report failure location when in after_each" do
114 # @reporter.should_receive(:example_finished) do |example_definition, error|
115 # example_definition.should equal(@example_definition)
116 # error.message.should eql("in after_each")
122 # describe ExampleRunner, "#run with use cases" do
123 # predicate_matchers[:is_a] = [:is_a?]
124 # it_should_behave_like "Spec::Example::ExampleRunner#run"
126 # it "should report NO NAME when told to use generated description with --dry-run" do
127 # @options.dry_run = true
128 # example_definition = @example_group_class.it() do
131 # runner = create_runner(example_definition)
133 # @reporter.should_receive(:example_finished) do |example_definition, error|
134 # example_definition.description.should == "NO NAME (Because of --dry-run)"
139 # it "should report given name if present with --dry-run" do
140 # @options.dry_run = true
141 # example_definition = @example_group_class.it("example name") do
144 # runner = create_runner(example_definition)
146 # @reporter.should_receive(:example_finished) do |example_definition, error|
147 # example_definition.description.should == "example name"
152 # it "should report NO NAME when told to use generated description with no expectations" do
153 # example_definition = @example_group_class.it() {}
154 # runner = create_runner(example_definition)
155 # @reporter.should_receive(:example_finished) do |example, error|
156 # example.description.should == "NO NAME (Because there were no expectations)"
161 # it "should report NO NAME when told to use generated description and matcher fails" do
162 # example_definition = @example_group_class.it() do
163 # 5.should "" # Has no matches? method..
165 # runner = create_runner(example_definition)
167 # @reporter.should_receive(:example_finished) do |example, error|
168 # example_definition.description.should == "NO NAME (Because of Error raised in matcher)"
173 # it "should report generated description when told to and it is available" do
174 # example_definition = @example_group_class.it() {
177 # runner = create_runner(example_definition)
179 # @reporter.should_receive(:example_finished) do |example_definition, error|
180 # example_definition.description.should == "should == 5"
185 # it "should unregister description_generated callback (lest a memory leak should build up)" do
186 # example_definition = @example_group_class.it("something")
187 # runner = create_runner(example_definition)
189 # Spec::Matchers.should_receive(:example_finished)