RSpec:控制器=>动作=>结果=>上下文规范

RSpec: controller => action => outcome => context specification

关于 RSpec 的一个非常快速的问题 - 我想要具有以下规范层次结构:

对于英文规范转储,对于搜索控制器示例,我想构建类似于以下措辞的内容:

目前我的代码如下所示:

RSpec.describe SearchController do
  describe 'suggest' do
    it 'returns articles by article text' do
      get :suggest, text: 'some text'
      expect(response.body).to ...
    end
    it 'returns articles by article header' do
      ...
    end
    it 'returns users by user name' do
      ...
    end
    it 'returns users by user age' do
      ...
    end
  end
end

它有点管用,但是有什么方法可以通过引入下一级分组和语义东西来改进它,比如 contextit 或类似的东西?

略有不同的结构应该更容易映射到 rspec 语法:

  • 搜索控制器
    • 建议
        • 按文本查找
        • 由 header
        • 找到
      • 用户
        • 按用户名查找
        • 按年龄查找

规格可能如下所示:

describe SearchController do
  describe 'suggest' do
    context 'articles' do
      it 'finds by name' do
        ...
      end
      it 'finds by text' do
        ...
      end
    end 
  end
end