1

这很奇怪。以下代码:

describe "Spike" do
  before(:all) do
    something = double('name')
  end
  describe "a test" do
    it "is basic" do
      1.should == 1
    end
  end
end

失败:

NoMethodError: undefined method `double' for #<RSpec::Core::ExampleGroup::Nested_1:0x9dec5e8 @__memoized=nil>

./spec/unit/whatever/spike_spec.rb:3:in `block (2 levels) in '

更改before(:all)before(:each),一切都很好。我正在使用 Ruby 1.9.3

有任何想法吗?

4

1 回答 1

4

这是预期的行为,因为在每个示例之后都会清除双打。before(:each)你应该坚持在一个块中使用这些。

https://www.relishapp.com/rspec/rspec-mocks/docs/scope

另请参阅https://github.com/rspec/rspec-core/issues/202进行讨论。

于 2013-10-03T17:08:46.780 回答