1

这是我的spec/helper.rb文件:

require 'minitest/autorun'
require 'minitest/spec'
require_relative '../lib/launcher'

class MiniTest::Spec
  include MiniTest::Assertions
end

这是规范文件:

require 'helper'

describe Launcher do
  it "should get the stdout" do
    out, err = capture_io do
      warn "You did a bad thing"
    end
    err.should =~ /bad/
  end
end

但是当我运行规范时:

± rake spec                                                                                                          
/Users/millisami/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec ./spec/launcher_spec.rb -Ispec:lib
F

Failures:

  1) Launcher should be a launcher for cloud
     Failure/Error: out, err = capture_io do
     NoMethodError:
       undefined method `capture_io' for #<RSpec::Core::ExampleGroup::Nested_1:0x000001012a4840>
     # ./spec/launcher_spec.rb:5:in `block (2 levels) in <top (required)>'

Finished in 0.00044 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/launcher_spec.rb:4 # launcher should be a launcher for cloud
rake aborted!
/Users/millisami/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec ./spec/launcher_spec.rb -Ispec:lib failed

Tasks: TOP => spec

但是当我使用默认的 MiniTest::Unit 方式执行此操作时,它有效吗?为什么不是规范方式?

4

1 回答 1

1

您的 spec_helper.rb 应该看起来更像这样:

require 'minitest/unit'
RSpec.configure do |c|
  c.include MiniTest::Assertions
end
于 2013-05-14T18:53:42.300 回答