Может ли пояснить мне, почему нужно использовать let! а не в этом случае? Тест проходит только тогда, когда я включаю!. Я думал, что понял, что let будет автоматически выполняться перед каждым оператором «it» внутри этого блока, но, по-видимому, это не так.Rspec: let versus let с восклицательным знаком
describe Artist do
before do
@artist = Artist.new(name: "Example User", email: "[email protected]",
password: "foobar", password_confirmation: "foobar")
end
subject { @artist }
describe "virtual requests" do
let!(:virtual1) { FactoryGirl.create(:virtual_request, artist: @artist) }
let!(:virtual2) { FactoryGirl.create(:virtual_request, artist: @artist) }
it "should be multiple" do
@artist.virtual_requests.count.should == 2
end
end
end
нашел отличное объяснение здесь http://stackoverflow.com/questions/17407733/trouble-differentiating-rspecs-let-vs-let –
Почему это не художник в 'let'? – apneadiving
Мне пришлось использовать метод .dup в какой-то момент спецификации, не работает с переменной let, поэтому я переключил его на экземпляр. –