Я бы хотел проверить свой регистрационный вид с помощью rspec.Как проверить вид разработки с помощью 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/registration/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
- DEViSE 3.5.1
- RSpec 3.3.0
Что я делаю неправильно? Спасибо за вашу помощь.
Edit:
переместить свой код в контроллер спецификации и он работает, не идеально, но ...
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
Вы пробовали страницу wiki? https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara –
Вы должны опубликовать код, чтобы показать, что вы пробовали. –
@ruby_newbie Я только что добавил свои спецификации. – user3671545