我习惯于编写视图规范,至少检查以下内容:
expect(view).to receive(:title).with('Required page title here')
(
title
是我编写的用于设置页面标题的助手方法。)现在,我正试图为我的设计视图编写规范,看起来像:
- title 'Lost Password'
.row
.col-lg-6
= form_for resource, as: resource_name, url: password_path(resource_name) do |f|
= render 'layouts/errors', object: resource
.form-group
= f.label :email
= f.text_field :email, class: 'form-control', autofocus: true
= f.submit 'Send me the instructions', class: 'btn btn-primary'
%hr
= render 'devise/shared/links'
.col-lg-6
= render 'devise/shared/advantages'
resource
和
resource_name
由设计定义。
如果在视图上运行以下规范:
require 'rails_helper'
describe 'devise/passwords/new', type: :view do
it 'sets the page title' do
expect(view).to receive(:title).with('Lost Password')
render
end
end
上面写着:
undefined local variable or method 'resource'
. 我试过:
allow(view).to receive(:resource).and_return(User.new)
但后来我
[snip, long class definition] does not implement: resource
.
我该怎么做?我不想把水豚用于像这样琐碎的事情。