用于将此规范缩短为单行的语法



是否可以将此规范缩短为一行?

it 'false for incorrect email' do 
  get :check_email, { user: { email: user.email + "abc" } }
  expect(response.body).to be_true
end 

像这样:

  expect(get :check_email, { user: { email: user.email + "abc" } } ...??? ).to be_true

get 方法返回如下所示的响应(以及设置实例变量@response如下所示,这就是您可以在测试用例中使用 response 的原因)。

在这种情况下,您可以利用这一事实并制作单行

expect(get(:check_email, { user: { email: user.email + "abc" } }).body).to be_true

但是,规范应该是可读且易于理解的,以便大多数理性的人能够理解测试正在做什么。

因此,我建议将测试保留为 2 行,因为它更容易理解正在测试的内容。(单行几乎看起来像您正在测试get的回报,如果您错过了最后对身体的调用)

最新更新