use*_*545 6 rspec ruby-on-rails devise
我想用 rspec 测试我的注册视图。
我已经尝试了很多事情,比如这里建议的使用rspec 测试设计视图 或使用 RSpec 的设计测试视图
但似乎没有什么问题,我总是收到这样的错误:
undefined local variable or method `resource'
Run Code Online (Sandbox Code Playgroud)
或者
does not implement: resource
Run Code Online (Sandbox Code Playgroud)
我当前的规格(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
Run Code Online (Sandbox Code Playgroud)
我的环境:
我究竟做错了什么?感谢您的帮助。
编辑:
我将代码移至控制器规范,它可以工作,但并不完美,但是......
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
Run Code Online (Sandbox Code Playgroud)
Wil*_*olt -1
观察水豚宝石。这是一个很好的入门指南(https://github.com/eliotsykes/rspec-rails-examples#capybara-examples)。
他还设计了示例(https://github.com/eliotsykes/rspec-rails-examples/blob/master/spec/features/user_registers_spec.rb)。
| 归档时间: |
|
| 查看次数: |
4624 次 |
| 最近记录: |