我正在关注Michael Hartl的教程并遇到了以下代码,我无法理解。
describe "index" do
let(:user) { FactoryGirl.create(:user) }
before(:each) do
sign_in user
visit users_path
end
it { should have_title('All users') }
it { should have_content('All users') }
describe "pagination" do
before(:all) { 30.times { FactoryGirl.create(:user) } }
after(:all) { User.delete_all }
it { should have_selector('div.pagination') }
it "should list each user" do
User.paginate(page: 1).each do |user|
expect(page).to have_selector('li', text: user.name)
end
end
end
end
我的问题是: 这是一个嵌套测试,其中Pagination的测试块在Index Test块中运行吗?换句话说,测试流程的顺序:
谢谢
答案 0 :(得分:1)
以下是上述测试的流程:
before(:each)
块在以下各项之前执行:
it { should have_title('All users') }
it { should have_content('All users') }
然后,再次执行before(:each)
,然后执行describe block
,执行:
before(:all) { 30.times { FactoryGirl.create(:user) } }
it { should have_selector('div.pagination') }
it "should list each user" do
User.paginate(page: 1).each do |user|
expect(page).to have_selector('li', text: user.name)
end
end
最后,after(:all) { User.delete_all }
被执行。
我希望这有助于解释流程。