我对如何组织集成测试感到有些困惑。现在,它们是根据页面结构组织的:
post_pages_spec.rb:
require 'spec_helper'
describe "Post pages" do
describe "show page" do
describe "post destruction" do
end
describe "edit" do
end
end
describe "post creation" do
end
end
如您所见,删除和编辑位于show动作中,因为它们出现在显示页面中。
这是组织它们的另一种方式(基于REST操作):
post_pages_spec.rb:
require 'spec_helper'
describe "Post pages" do
describe "show page" do
end
describe "post destruction" do
end
describe "post creation" do
end
describe "edit" do
end
end
哪种结构更清晰,更易于维护?
答案 0 :(得分:2)
假设您真的在询问集成测试而不是控制器测试,我喜欢从用户角度和用户类型组织集成测试。防爆。一个用于注册用户的文件,一个用于管理员的文件,一个用于未注册用户的文件等,并且必要时。
这样做的理由是,我发现,作为一般的启发式方法,相同的用户类型具有相同的特征先决条件,因此非常适合。例如,观看帖子的注册用户可能有很多关注CRUD现有帖子内容的场景,其中非注册用户可能具有关注帖子推荐的场景。由于这些不同的视角可能会有不同的设置和拆卸,因此它们也可能更容易(即干燥等)单独维护。
另外,它看起来不错:) Ex:
describe "Registered User" do
context 'creating a Post' do
it "succeeds given all fields are filled out"
it "displays errors to the author if a field is missing"
end
end