spec/autotest/rspec_spec.rb in rspec-1.1.4 vs spec/autotest/rspec_spec.rb in rspec-1.1.5
- old
+ new
@@ -21,11 +21,10 @@
Autotest::Rspec handling failed results should return an array of failed examples and errors (TODO)
Autotest::Rspec tests/specs for a given file should find all the specs for a given file (TODO)
HERE
end
-
def common_setup
@proc = mock Proc
@kernel = mock Kernel
@kernel.stub!(:proc).and_return @proc
@@ -35,163 +34,113 @@
@rspec_output = rspec_output
end
end
- describe Rspec, "rspec_commands" do
- it "should contain the various commands, ordered by preference" do
- Rspec.new.spec_commands.should == [
- File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec"),
- "#{Config::CONFIG['bindir']}/spec"
- ]
- end
- end
-
- describe Rspec, "selection of rspec command" do
- include AutotestHelper
-
- before(:each) do
- common_setup
- @rspec_autotest = Rspec.new
- end
-
- it "should try to find the spec command if it exists in ./bin and use it above everything else" do
- File.stub!(:exists?).and_return true
+ describe Rspec do
+ describe "adding spec.opts --options" do
+ before(:each) do
+ @rspec_autotest = Rspec.new
+ end
- spec_path = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
- File.should_receive(:exists?).with(spec_path).and_return true
- @rspec_autotest.spec_command.should == spec_path
- end
+ it "should return the command line option to add spec.opts if the options file exists" do
+ File.stub!(:exist?).and_return true
+ @rspec_autotest.add_options_if_present.should == "-O spec/spec.opts "
+ end
- it "should otherwise select the default spec command in gem_dir/bin/spec" do
- @rspec_autotest.stub!(:spec_commands).and_return ["/foo/spec"]
- Config::CONFIG.stub!(:[]).and_return "/foo"
- File.should_receive(:exists?).with("/foo/spec").and_return(true)
-
- @rspec_autotest.spec_command.should == "/foo/spec"
- end
-
- it "should raise an error if no spec command is found at all" do
- File.stub!(:exists?).and_return false
+ it "should return an empty string if no spec.opts exists" do
+ File.stub!(:exist?).and_return false
+ Rspec.new.add_options_if_present.should == ""
+ end
+ end
+
+ describe "commands" do
+ before(:each) do
+ @rspec_autotest = Rspec.new
+ @rspec_autotest.stub!(:ruby).and_return "ruby"
+ @rspec_autotest.stub!(:add_options_if_present).and_return "-O spec/spec.opts"
- lambda {
- @rspec_autotest.spec_command
- }.should raise_error(RspecCommandError, "No spec command could be found!")
- end
+ @ruby = @rspec_autotest.ruby
+ @options = @rspec_autotest.add_options_if_present
+ @files_to_test = {
+ :spec => ["file_one", "file_two"]
+ }
+ # this is not the inner representation of Autotest!
+ @rspec_autotest.stub!(:files_to_test).and_return @files_to_test
+ @files_to_test.stub!(:keys).and_return @files_to_test[:spec]
+ @to_test = @files_to_test.keys.flatten.join ' '
+ end
- end
-
- describe Rspec, "selection of rspec command (windows compatibility issues)" do
- include AutotestHelper
-
- before(:each) do
- common_setup
- end
-
- it "should use the ALT_SEPARATOR if it is non-nil" do
- @rspec_autotest = Rspec.new
- spec_command = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
- @rspec_autotest.stub!(:spec_commands).and_return [spec_command]
- @rspec_autotest.spec_command(@windows_alt_separator).should == spec_command.gsub('/', @windows_alt_separator)
- end
-
- it "should not use the ALT_SEPATOR if it is nil" do
- @windows_alt_separator = nil
- @rspec_autotest = Rspec.new
- spec_command = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
- @rspec_autotest.stub!(:spec_commands).and_return [spec_command]
- @rspec_autotest.spec_command.should == spec_command
- end
- end
+ it "should make the appropriate test command" do
+ @rspec_autotest.make_test_cmd(@files_to_test).should == "#{@ruby} -S #{@to_test} #{@options}"
+ end
- describe Rspec, "adding spec.opts --options" do
- before(:each) do
- @rspec_autotest = Rspec.new
+ it "should return a blank command for no files" do
+ @rspec_autotest.make_test_cmd({}).should == ''
+ end
end
-
- it "should return the command line option to add spec.opts if the options file exists" do
- File.stub!(:exist?).and_return true
- @rspec_autotest.add_options_if_present.should == "-O spec/spec.opts "
- end
-
- it "should return an empty string if no spec.opts exists" do
- File.stub!(:exist?).and_return false
- Rspec.new.add_options_if_present.should == ""
- end
- end
- describe Rspec do
- before(:each) do
- @rspec_autotest = Rspec.new
- @rspec_autotest.stub!(:ruby).and_return "ruby"
- @rspec_autotest.stub!(:add_options_if_present).and_return "-O spec/spec.opts"
-
- @ruby = @rspec_autotest.ruby
- @spec_command = @rspec_autotest.spec_command
- @options = @rspec_autotest.add_options_if_present
- @files_to_test = {
- :spec => ["file_one", "file_two"]
- }
- # this is not the inner representation of Autotest!
- @rspec_autotest.stub!(:files_to_test).and_return @files_to_test
- @files_to_test.stub!(:keys).and_return @files_to_test[:spec]
- @to_test = @files_to_test.keys.flatten.join ' '
- end
+ describe "mappings" do
- it "should make the apropriate test command" do
- @rspec_autotest.make_test_cmd(@files_to_test).should == "#{@ruby} -S #{@spec_command} #{@options} #{@to_test}"
- end
- end
-
- describe Rspec, "mappings" do
+ before(:each) do
+ @lib_file = "lib/something.rb"
+ @spec_file = "spec/something_spec.rb"
+ @rspec_autotest = Rspec.new
+ @rspec_autotest.hook :initialize
+ end
- before(:each) do
- @lib_file = "lib/something.rb"
- @spec_file = "spec/something_spec.rb"
- @rspec_autotest = Rspec.new
- @rspec_autotest.hook :initialize
- end
+ it "should find the spec file for a given lib file" do
+ @rspec_autotest.should map_specs([@spec_file]).to(@lib_file)
+ end
- it "should find the spec file for a given lib file" do
- @rspec_autotest.should map_specs([@spec_file]).to(@lib_file)
- end
+ it "should find the spec file if given a spec file" do
+ @rspec_autotest.should map_specs([@spec_file]).to(@spec_file)
+ end
- it "should find the spec file if given a spec file" do
- @rspec_autotest.should map_specs([@spec_file]).to(@spec_file)
+ it "should only find the file if the file is being tracked (in @file)" do
+ @rspec_autotest.should map_specs([]).to("lib/untracked_file")
+ end
end
-
- it "should only find the file if the file is being tracked (in @file)" do
- @rspec_autotest.should map_specs([]).to("lib/untracked_file")
- end
- end
- describe Rspec, "consolidating failures" do
- include AutotestHelper
+ describe "consolidating failures" do
+ include AutotestHelper
- before(:each) do
- common_setup
- @rspec_autotest = Rspec.new
+ before(:each) do
+ common_setup
+ @rspec_autotest = Rspec.new
- @spec_file = "spec/autotest/rspec_spec.rb"
- @rspec_autotest.instance_variable_set("@files", {@spec_file => Time.now})
- @rspec_autotest.stub!(:find_files_to_test).and_return true
- end
+ @spec_file = "spec/autotest/some_spec.rb"
+ @rspec_autotest.instance_variable_set("@files", {@spec_file => Time.now})
+ @rspec_autotest.stub!(:find_files_to_test).and_return true
+ end
- it "should return no failures if no failures were given in the output" do
- @rspec_autotest.consolidate_failures([[]]).should == {}
- end
+ it "should return no failures if no failures were given in the output" do
+ @rspec_autotest.consolidate_failures([[]]).should == {}
+ end
- it "should return a hash with the spec filename => spec name for each failure or error" do
- @rspec_autotest.stub!(:test_files_for).and_return "spec/autotest/rspec_spec.rb"
- failures = [
- [
- "false should be false",
- "expected: true,\n got: false (using ==)\n#{@spec_file}:203:"
+ it "should return a hash with the spec filename => spec name for each failure or error" do
+ @rspec_autotest.stub!(:test_files_for).and_return "spec/autotest/some_spec.rb"
+ failures = [
+ [
+ "false should be false",
+ "expected: true,\n got: false (using ==)\n#{@spec_file}:203:"
+ ]
]
- ]
- @rspec_autotest.consolidate_failures(failures).should == {
- @spec_file => ["false should be false"]
- }
- end
+ @rspec_autotest.consolidate_failures(failures).should == {
+ @spec_file => ["false should be false"]
+ }
+ end
+ it "should not include the subject file" do
+ subject_file = "lib/autotest/some.rb"
+ @rspec_autotest.stub!(:test_files_for).and_return "spec/autotest/some_spec.rb"
+ failures = [
+ [
+ "false should be false",
+ "expected: true,\n got: false (using ==)\n#{subject_file}:143:\n#{@spec_file}:203:"
+ ]
+ ]
+ @rspec_autotest.consolidate_failures(failures).keys.should_not include(subject_file)
+ end
+ end
end
end