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)