【问题标题】:How refactor the names of my contexts in my tests in Rspec-Ruby on Rails如何在 Rspec-Ruby on Rails 的测试中重构我的上下文名称
【发布时间】:2016-12-23 01:55:54
【问题描述】:

我应该如何为我的测试编写上下文名称?

我有一个具有角色的用户:用户和管理员

我的用户模型有一列“禁止”:真或假

我想测试所有可能的情况

谢谢!

【问题讨论】:

  • banned 的行为是否取决于用户角色?
  • @slowjack2k mmmm,没有
  • 所以它可以是顶级上下文,不需要嵌套在用户上下文中。

标签: ruby-on-rails ruby rspec tdd


【解决方案1】:

您可能想要执行以下操作:

describe 'GET #index' do

  context 'admin user' do
    scenario 'is blocked' do
      # your test
    end

    scenario 'is not blocked' do
      # your test
    end
  end

  context 'regular user' do
    scenario 'is blocked' do
      # your test
    end

    scenario 'is not blocked' do
      # your test
    end
  end
end

【讨论】:

  • 'scenario'和'context'有什么区别?
  • “场景”DSL 对应于“它”。它只是一个别名,允许将功能规范读取为验收测试。我认为这比您当前拥有的更具可读性,并且您只需为每种用户类型(管理员/普通用户)设置一次上下文
【解决方案2】:

我认为你在做什么没关系...但是,如果你想重用一些规范,你可以使用:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2013-03-29
    相关资源
    最近更新 更多