-1
로그인 한 사용자가 영화를 추가, 편집 및 삭제할 수있을뿐 아니라 각 영화의 리뷰를 남길 수있는 영화 리뷰 웹 사이트를 만들었습니다. 나는 또한 '가짜 이메일'(콘솔에만 표시됨)을 보내는 연락처 양식에 대한 메일러를 구현했습니다.메일러/연락처 테스트
Ruby를 처음 사용하기 때문에 내 컨트롤러와 연락처를 테스트하는 방법이 확실하지 않습니다. 모든 형태의 조언을 많이 부탁드립니다.
contacts_controller.rb가 :
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
@contact.request = request
if @contact.deliver
flash.now[:notice] = 'Thank you for your message. We will contact you soon!'
else
flash.now[:error] = 'Cannot send message.'
render :new
end
end
end
contact.rb :
class Contact < MailForm::Base
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.
attribute :message
attribute :nickname, :captcha => true
# Declare the e-mail headers. It accepts anything the mail method
# in ActionMailer accepts.
def headers
{
:subject => "My Contact Form",
:to => "[email protected]",
:from => %("#{name}" <#{email}>)
}
end
end
경로 : 지금까지
contacts GET /contacts(.:format) contacts#new
POST /contacts(.:format) contacts#create
new_contact GET /contacts/new(.:format) contacts#new
내 테스트 :
require 'test_helper'
class ContactsControllerTest < ActionController::TestCase
include Devise::Test::ControllerHelpers
test "should get contact" do
get :new
assert_response :success
end
end
http://edgeguides.rubyonrails.org/testing.html#testing-your-mailers 링크를 공유 주셔서 감사합니다 자세한 내용을 읽을 수 있습니다. 이 링크를 사용하여 이해하려고 시도했지만 필자는 테스트를 위해 이러한 원칙을 적용하는 방법을 여전히 잘 모르고 있습니다. – sar
컨트롤러에서 테스트하기 위해'10.3 Functional Testing'을 찾으십시오. 질문이 있으면 알려주십시오. 하나는 포스트 send_email_url, PARAMS을 테스트, assert_difference 'ActionMailer :: Base.deliveries.size을'할 '이메일을 보내 ": mymovies @'정보 : {이메일을 – JackBites
는 10.3을 기반으로 I는 다음의 시험에 올라와있다 .COM '} 끝 의 send_email = ActionMailer :: Base.deliveries.last 끝 내가 곧 정상 궤도에있어 경우에 나는 완전히 혼란 스러워요 당신이 여기에 나를 인도 시겠어요. – sar