Rspec使用共享示例进行范围界定

时间:2014-12-22 10:23:49

标签: ruby-on-rails ruby rspec rspec-rails rspec3

我遇到了let和共享示例的问题。发生的事情是我的第二个shared_context let覆盖了第一个。

示例:

RSpec.shared_examples "an example" do
  include_context "a"
  include_context "b"
end

shared_context 'a' do
  let(:let_example) { p 'let_example a' }

  include_context "c"
end

shared_context 'b' do
  let(:let_example) { p 'let_example b' }

  include_context "c"
end

shared_context 'c' do
  before do
    let_example
  end
end

始终打印let_example b

1 个答案:

答案 0 :(得分:0)

在您的示例方法中,重新定义已经完成。执行include_context 'a'后,它会将let_example定义为打印'let_example a'的方法。但是当你include_context 'b'被执行后,重新定义了有效打印let_example的方法let_example 'b'