标签: ruby-on-rails rspec
是否可以将此规范缩短为一行?
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
答案 0 :(得分:2)
get方法返回的响应如图Here所示(以及设置实例变量@response的显示Here,这就是为什么可以使用{{1} })。
get
@response
在这种情况下,您可以利用这一事实并做出单线
response
但是规范应该易读易懂,以便大多数理性的人可以理解测试的目的。
因此,我建议将测试保留为2行,因为这样可以更轻松地了解所测试的内容。 (如果您错过了对正文的调用,单线简直就像您正在测试expect(get(:check_email, { user: { email: user.email + "abc" } }).body).to be_true 的收益)
expect(get(:check_email, { user: { email: user.email + "abc" } }).body).to be_true