RSpec:控制器=>动作=>结果=>上下文规范
RSpec: controller => action => outcome => context specification
关于 RSpec 的一个非常快速的问题 - 我想要具有以下规范层次结构:
- 控制器 - 每个文件一个,例如,
SearchController
- Action - 每个控制器的多个动作,每个单独指定,例如,
search
或 suggest
- 结果 - 根据从控制器收到的结果的含义进行分组 - 即如果我们指定
search
,那么我想根据查询返回的搜索结果对测试用例进行分组,即 "search of articles", "search of users", "search of products"
- 上下文 - 在几个不同的上下文中可以达到相同的结果 - 即在搜索控制器示例中,即 "searching for articles" 使用各种搜索短语
对于英文规范转储,对于搜索控制器示例,我想构建类似于以下措辞的内容:
- 搜索控制器
- 建议
- returns 篇文章
- 按文章正文
- 文章header
- returns 位用户
- 按用户名
- 按用户年龄
目前我的代码如下所示:
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
它有点管用,但是有什么方法可以通过引入下一级分组和语义东西来改进它,比如 context
、it
或类似的东西?
略有不同的结构应该更容易映射到 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
关于 RSpec 的一个非常快速的问题 - 我想要具有以下规范层次结构:
- 控制器 - 每个文件一个,例如,
SearchController
- Action - 每个控制器的多个动作,每个单独指定,例如,
search
或suggest
- 结果 - 根据从控制器收到的结果的含义进行分组 - 即如果我们指定
search
,那么我想根据查询返回的搜索结果对测试用例进行分组,即 "search of articles", "search of users", "search of products" - 上下文 - 在几个不同的上下文中可以达到相同的结果 - 即在搜索控制器示例中,即 "searching for articles" 使用各种搜索短语
对于英文规范转储,对于搜索控制器示例,我想构建类似于以下措辞的内容:
- 搜索控制器
- 建议
- returns 篇文章
- 按文章正文
- 文章header
- returns 位用户
- 按用户名
- 按用户年龄
- returns 篇文章
- 建议
目前我的代码如下所示:
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
它有点管用,但是有什么方法可以通过引入下一级分组和语义东西来改进它,比如 context
、it
或类似的东西?
略有不同的结构应该更容易映射到 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