+++ /dev/null
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-require 'spec/runner/formatter/profile_formatter'
-
-module Spec
- module Runner
- module Formatter
- describe ProfileFormatter do
- attr_reader :io, :formatter
- before(:each) do
- @io = StringIO.new
- options = mock('options')
- options.stub!(:colour).and_return(true)
- @formatter = ProfileFormatter.new(options, io)
- end
-
- it "should print a heading" do
- formatter.start(0)
- io.string.should eql("Profiling enabled.\n")
- end
-
- it "should record the current time when starting a new example" do
- now = Time.now
- Time.stub!(:now).and_return(now)
- formatter.example_started('should foo')
- formatter.instance_variable_get("@time").should == now
- end
-
- it "should correctly record a passed example" do
- now = Time.now
- Time.stub!(:now).and_return(now)
- parent_example_group = Class.new(ExampleGroup).describe('Parent')
- child_example_group = Class.new(parent_example_group).describe('Child')
-
- formatter.add_example_group(child_example_group)
-
- formatter.example_started('when foo')
- Time.stub!(:now).and_return(now+1)
- formatter.example_passed(stub('foo', :description => 'i like ice cream'))
-
- formatter.start_dump
- io.string.should include('Parent Child')
- end
-
- it "should sort the results in descending order" do
- formatter.instance_variable_set("@example_times", [['a', 'a', 0.1], ['b', 'b', 0.3], ['c', 'c', 0.2]])
- formatter.start_dump
- formatter.instance_variable_get("@example_times").should == [ ['b', 'b', 0.3], ['c', 'c', 0.2], ['a', 'a', 0.1]]
- end
-
- it "should print the top 10 results" do
- example_group = Class.new(::Spec::Example::ExampleGroup).describe("ExampleGroup")
- formatter.add_example_group(example_group)
- formatter.instance_variable_set("@time", Time.now)
-
- 15.times do
- formatter.example_passed(stub('foo', :description => 'i like ice cream'))
- end
-
- io.should_receive(:print).exactly(10)
- formatter.start_dump
- end
- end
- end
- end
-end
\ No newline at end of file