spec/teaspoon/runner_spec.rb in teaspoon-0.8.0 vs spec/teaspoon/runner_spec.rb in teaspoon-0.9.0

- old
+ new

@@ -4,11 +4,11 @@ require "teaspoon/coverage" describe Teaspoon::Runner do before do - Teaspoon.configuration.stub(:formatters).and_return([]) + allow(Teaspoon.configuration).to receive(:formatters).and_return([]) end describe "#initialize" do it "sets @suite_name and @failure_count" do @@ -16,20 +16,20 @@ expect(subject.instance_variable_get(:@suite_name)).to eq(:foo) expect(subject.failure_count).to eq(0) end it "instantiates formatters based on configuration" do - Teaspoon.configuration.stub(:formatters).and_return(["dot", "xml"]) + allow(Teaspoon.configuration).to receive(:formatters).and_return(["dot", "xml"]) Teaspoon::Formatters::XmlFormatter = Class.new do def initialize(_suite_name = :default, _output_file = nil) end end expect(subject.instance_variable_get(:@formatters)[0]).to be_a(Teaspoon::Formatters::DotFormatter) expect(subject.instance_variable_get(:@formatters)[1]).to be_a(Teaspoon::Formatters::XmlFormatter) end it "raises a Teaspoon::UnknownFormatter exception when a formatter isn't found" do - Teaspoon.configuration.stub(:formatters).and_return(["bar"]) + allow(Teaspoon.configuration).to receive(:formatters).and_return(["bar"]) expect { Teaspoon::Runner.new(:foo) }.to raise_error Teaspoon::UnknownFormatter, "Unknown formatter: \"bar\"" end end @@ -41,29 +41,29 @@ before do subject.instance_variable_set(:@formatters, [formatter]) end it "notifies formatters when it understands the log" do - formatter.should_receive(:foo) - formatter.should_not_receive(:bar) + expect(formatter).to receive(:foo) + expect(formatter).to_not receive(:bar) subject.process('{"_teaspoon":true,"type":"foo"}') subject.process('{"_teaspoon":false,"type":"bar"}') end it "notifies formatters of console output when it doesn't understand the log" do - formatter.should_receive(:console).with("_line_") - subject.should_receive(:result_from_line).and_return(false) + expect(formatter).to receive(:console).with("_line_") + expect(subject).to receive(:result_from_line).and_return(false) subject.process("_line_") end it "handles bad json" do - formatter.should_receive(:console).with("{bad: true}") + expect(formatter).to receive(:console).with("{bad: true}") subject.process("{bad: true}") end it "handles json when it's not intended for it" do - formatter.should_receive(:console).with('{"good": true}') + expect(formatter).to receive(:console).with('{"good": true}') subject.process('{"good": true}') end it "keeps a count of errors" do subject.process('{"_teaspoon":true,"type":"spec"}') @@ -75,34 +75,37 @@ end describe "with an exception" do it "notifies itself, and raises Teaspoon::RunnerException" do - subject.should_receive(:on_exception).and_call_original - expect { subject.process('{"_teaspoon":true,"type":"exception","message":"_message_"}') }.to raise_error Teaspoon::RunnerException, "_message_" + expect(subject).to receive(:on_exception).and_call_original + expect { subject.process('{"_teaspoon":true,"type":"exception","message":"_message_"}') }.to raise_error( + Teaspoon::RunnerException, + "_message_" + ) end end describe "with a result" do before do - Teaspoon::Coverage.stub(:new).and_return(coverage) + allow(Teaspoon::Coverage).to receive(:new).and_return(coverage) end it "notifies itself" do - subject.should_receive(:on_result) + expect(subject).to receive(:on_result) subject.process('{"_teaspoon":true,"type":"result"}') end it "resolves coverage" do - Teaspoon.configuration.should_receive(:use_coverage).twice.and_return("_coverage_config_") - Teaspoon::Coverage.should_receive(:new).with(:default, "_coverage_config_", "_coverage_").and_return(coverage) - coverage.should_receive(:generate_reports).and_yield("_generated_reports_") - coverage.should_receive(:check_thresholds).and_yield("_threshold_failures_") - subject.should_receive(:notify_formatters).once.with("coverage", "_generated_reports_") - subject.should_receive(:notify_formatters).once.with("threshold_failure", "_threshold_failures_") - subject.should_receive(:notify_formatters).exactly(2).times.and_call_original + expect(Teaspoon.configuration).to receive(:use_coverage).twice.and_return("_config_") + expect(Teaspoon::Coverage).to receive(:new).with(:default, "_config_", "_coverage_").and_return(coverage) + expect(coverage).to receive(:generate_reports).and_yield("_generated_reports_") + expect(coverage).to receive(:check_thresholds).and_yield("_threshold_failures_") + expect(subject).to receive(:notify_formatters).once.with("coverage", "_generated_reports_") + expect(subject).to receive(:notify_formatters).once.with("threshold_failure", "_threshold_failures_") + expect(subject).to receive(:notify_formatters).exactly(2).times.and_call_original subject.process('{"_teaspoon":true,"type":"result","coverage":"_coverage_"}') expect(subject.failure_count).to eq(1) end end