1

我对如何组织我的集成测试有点困惑。现在,它们是根据页面结构组织的:

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

如您所见,删除和编辑在显示操作中,因为它们出现在显示页面中。

这是组织它们的另一种方式(基于 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

哪种结构更清晰、更易于维护?

4

1 回答 1

2

假设您确实在询问集成测试而不是控制器测试,我喜欢从用户的角度和用户类型来组织集成测试。前任。一份给注册用户的文件,一份给管理员的文件,一份给未注册用户的文件,等等。

这样做的理由是,作为一般启发式,我发现相同的用户类型具有相同的功能先决条件,因此可以很好地结合在一起。例如,查看帖子的注册用户可能有很多专注于对现有帖子内容进行 CRUD 的场景,而未注册用户可能有专注于帖子推荐的场景。由于这些不同的视角可能会有不同的设置和拆卸,因此它们也可能更容易(即 DRY-er 等)单独维护。

此外,它读起来很好:) 例如:

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
于 2012-11-11T22:49:50.947 回答