Saya cukup baru mengenal Ruby & Rails; belum melakukan banyak pemrograman; tetapi memiliki latar belakang teknologi.
Saya telah membangun sejumlah kecil fungsionalitas yang sebagian besar didasarkan pada Railscasts dan ingin menggunakan TDD, dan saya akan kembali dan mencoba membuat beberapa tes sederhana sebelum melanjutkan.
Saya terjebak dalam pengujian tampilan dan tidak dapat menemukan sesuatu yang cukup serupa untuk mencari cara mengatasi masalah ini. Saya telah memeriksa Railscasts, buku The RSpec, dll., dan telah melakukan banyak pencarian.
Fungsionalitas yang diinginkan tampaknya berfungsi dengan baik, tetapi pengujian gagal.
Bantuan atau arahan apa pun dihargai.
Kesalahan:
Failure/Error: render
ActionView::Template::Error:
No route matches {:action=>"show", :controller=>"email_verifies", :id=>nil}
# ./app/views/email_verifies/edit.html.haml:3:in `_app_views_email_verifies_edit_html_haml__3756516833416545914_70345184965780'
# ./spec/views/email_verifies/edit.html.haml_spec.rb:6:in `block (2 levels) in <top (required)>'
Kode:
app/views/email_verify/edit.html.haml
%h1 Verify Email Address
= form_for @user, :url => email_verify_path(params[:id]) do |f|
.actions
= f.submit "Verify Email Address"
spec/views/email_verify/edit.html.haml_spec.rb
require 'spec_helper'
describe "email_verifies/edit.html.haml" do
let(:user) { FactoryGirl.create(:user, :email_verify_token => "anything") }
it "displays the text on the rendered page" do
render
rendered.should have_content("Verify Email Address")
end
end
spesifikasi/pabrik/pabrik.rb
FactoryGirl.define do
factory :user do
sequence :email do |n|
"foo#{n}@example.com"
end
password "secret"
end
end
bagian dari app/controllers/email_verify_controller.rb (tidak ada tindakan 'tampilkan' di pengontrol ini)
def edit
@user = User.find_by_email_verify_token(params[:id])
unless @user
redirect_to signup_path, :alert => "This email verification has expired. Please sign up again."
end
end
Beberapa rute:
edit_email_verify GET /email_verifies/:id/edit(.:format) email_verifies#edit
email_verify GET /email_verifies/:id(.:format) email_verifies#show
email_verifies GET /email_verifies(.:format) email_verifies#index
edit_email_verify GET /email_verifies/:id/edit(.:format) email_verifies#edit
email_verify GET /email_verifies/:id(.:format) email_verifies#show
PUT /email_verifies/:id(.:format) email_verifies#update
Versi:
ruby 1.9.3p362
rails (3.2.13)
factory_girl (4.2.0)
factory_girl_rails (4.2.1)
rspec (2.13.0)
rspec-core (2.13.1 )
rspec-expectations (2.13.0)
rspec-mocks (2.13.1)
rspec-rails (2.13.2)