1 require File.dirname(__FILE__) + '/../../../spec_helper.rb'
6 describe "SpecdocFormatter" do
9 @options = mock('options')
10 @options.stub!(:dry_run).and_return(false)
11 @options.stub!(:colour).and_return(false)
12 @formatter = SpecdocFormatter.new(@options, @io)
13 @behaviour = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples")
16 it "should produce standard summary without pending when pending has a 0 count" do
17 @formatter.dump_summary(3, 2, 1, 0)
18 @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
21 it "should produce standard summary" do
22 @formatter.dump_summary(3, 2, 1, 4)
23 @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n")
26 it "should push context name" do
27 @formatter.add_example_group(Spec::Example::ExampleGroupDescription.new("context"))
28 @io.string.should eql("\ncontext\n")
31 it "when having an error, should push failing spec name and failure number" do
32 @formatter.example_failed(
33 @behaviour.it("spec"),
35 Reporter::Failure.new("c s", RuntimeError.new)
37 @io.string.should eql("- spec (ERROR - 98)\n")
40 it "when having an expectation failure, should push failing spec name and failure number" do
41 @formatter.example_failed(
42 @behaviour.it("spec"),
44 Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
46 @io.string.should eql("- spec (FAILED - 98)\n")
49 it "should push nothing on start" do
51 @io.string.should eql("")
54 it "should push nothing on start dump" do
56 @io.string.should eql("")
59 it "should push passing spec name" do
60 @formatter.example_passed(@behaviour.it("spec"))
61 @io.string.should eql("- spec\n")
64 it "should push pending example name and message" do
65 @formatter.example_pending('behaviour', 'example','reason')
66 @io.string.should eql("- example (PENDING: reason)\n")
69 it "should dump pending" do
70 @formatter.example_pending('behaviour', 'example','reason')
72 @formatter.dump_pending
73 @io.string.should =~ /Pending\:\nbehaviour example \(reason\)\n/
76 it "should not produce summary on dry run" do
77 @options.should_receive(:dry_run).and_return(true)
78 @formatter.dump_summary(3, 2, 1, 0)
79 @io.string.should eql("")