【发布时间】:2015-11-28 06:00:58
【问题描述】:
我想用 rspec 测试我的注册视图。
我已经尝试了很多类似这里建议的事情Testing devise views with rspec 或Testing Views that use Devise with RSpec
但似乎没有任何问题,我总是收到如下错误:
undefined local variable or method `resource'
或
does not implement: resource
我目前的规范(spec/views/devise/registrations/new.slim_spec.rb):
require 'rails_helper'
RSpec.describe 'devise/registrations/new.slim', type: :view do
describe 'sign up form' do
before do
allow(view).to receive(:resource).and_return(User.new)
allow(view).to receive(:resource_name).and_return(:user)
end
it 'does not contains an area for user avatar' do
render
expect(rendered).to_not include('Profile Pic')
end
end
end
我的环境:
- 导轨 4.2.3
- 设计 3.5.1
- rspec 3.3.0
我做错了什么?感谢您的帮助。
编辑:
我将代码移至控制器规范,它可以工作,但并不完美,但...
RSpec.describe Users::RegistrationsController, type: :controller do
before(:each) do
request.env['devise.mapping'] = Devise.mappings[:user]
end
describe '#new' do
render_views
it 'does not contains an area for user avatar' do
get :new
expect(response.body).to_not include('Profile Pic')
end
end
end
【问题讨论】:
-
你应该发布一些代码来展示你所尝试的。
-
@ruby_newbie 我刚刚添加了我的规范。
-
正确答案可以在这里找到:stackoverflow.com/questions/14426746/…
标签: ruby-on-rails rspec devise