0
나는 틀릴 수도있는 rspec 테스트를 가지고 있지 않습니다. 이 방법은 명확하게 정의되어 있으며 사이트 자체에서 작동합니다. 시험에 실패하는 것입니다. 뷰 자체 내에서정의 된 메소드`gravatar_for '가 수정 등록 경로에 포함됨
module UsersHelper
#Returns the Gravatar for the given user.
def gravatar_for(user, options = { size: 50})
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
size = options[:size]
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end
그리고 마지막으로 코드 : 여기
describe "edit" do
let(:user) {FactoryGirl.create(:user)}
before do
sign_in user
visit edit_user_registration_path(user)
end
describe "page" do
it { should have_selector('h1', text: "Update your profile")}
it { should have_selector('title', text: "Edit user")}
it { should have_link('change', href: "http://gravatar.com/emails")}
end
describe "with invalid information" do
before { click_button "Save changes"}
it { should have_content('error')}
실제 방법 : 여기
UserPages edit with invalid information
Failure/Error: visit edit_user_registration_path(user)
ActionView::Template::Error:
undefined method `gravatar_for' for_app_views_devise_registrations_edit_html_erb
# ./app/views/devise/registrations/edit.html.erb:8:in
`_app_views_devise_registrations_edit_html_erb
# ./spec/requests/user_pages_spec.rb:114:in `block (3 levels) in <top (required)>'
은 RSpec에 테스트입니다
<%= gravatar_for @user %>
<a href="http://gravatar.com/emails" target="_blank">change avatar</a>
감사합니다. –