我遇到了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
。
答案 0 :(得分:0)
在您的示例方法中,重新定义已经完成。执行include_context 'a'
后,它会将let_example
定义为打印'let_example a'
的方法。但是当你include_context 'b'
被执行后,重新定义了有效打印let_example
的方法let_example 'b'
。