1
在rspec的試運行,我試圖初始化兩個變量測試運行之前如下「前:每個做」塊沒有在rspec的
describe "Publishing" do
before :each do
page_published = Page.create(attributes_for(:page))
page_unpublished = Page.create(attributes_for(:page_unpublished))
end
it "returns published pages" do
expect(Page.published).to eq [page_published]
end
it "returns unpublished pages" do
expect(Page.unpublished).to eq [page_unpublished]
end
end
當我這樣做,我得到一個錯誤:
1) Page Publishing returns unpublished pages
Failure/Error: expect(Page.unpublished).to eq [page_unpublished]
NameError:
undefined local variable or method `page_unpublished' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x0000010355b8c0>
但是,如果我在每個塊中定義變量,則不會有錯誤。例如:
describe "Publishing" do
it "returns published pages" do
page_published = Page.create(attributes_for(:page))
expect(Page.published).to eq [page_published]
end
it "returns unpublished pages" do
page_unpublished = Page.create(attributes_for(:page_unpublished))
expect(Page.unpublished).to eq [page_unpublished]
end
end
爲什麼變量中的「before:each do」塊中沒有聲明變量?
正確,謝謝 –