繁体   English   中英

根据页面结构或 REST 操作组织集成测试?

[英]Organizing a integration tests according to page structure or REST actions?

我对如何组织集成测试感到有些困惑。 现在,它们根据页面结构进行组织:

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 操作中,因为它们出现在 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

哪个结构更清晰,更容易维护?

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

这样做的理由是,作为一般的启发式方法,我发现相同的用户类型对功能具有相同的先决条件,因此可以很好地结合在一起。 例如,注册用户查看帖子可能有很多场景侧重于 CRUDing 现有帖子内容,而非注册用户可能有很多场景侧重于帖子推荐。 由于这些不同的视角可能会有不同的设置和拆卸,因此它们也可能更容易(即 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM