Я очень новичок в рельсах, и я следил за множеством отличных уроков и примеров в сообществе, поэтому прежде всего спасибо!
У меня проблема с моим тестомкод.Приложение работает, и я могу видеть из журналов теста, что база данных пишется, но по какой-то причине он не возвращает метод сохранения должным образом.
Это в основном прямо из Rails Tutorial Майкла Хартла
Случаи "успеха" возвращают "ожидаемое сохранение, но оно получено 0 раз", и "сбой"case перенаправляет в неправильное место. Кажется, что он игнорирует блок if / else.
Вот соответствующий код из спецификации контроллера и контроллера
Я был бы очень признателен за понимание этого..
Спасибо, Джо
class WebsitesController < ApplicationController
before_filter :require_user, :only => [:new, :edit, :create, :destroy]
def new
@website = Website.new
@title = "Add New Website"
end
def edit
@website = Website.find(params[:id])
@title = "Edit Website"
end
def create
@website = current_user.websites.build(params[:website])
if @website.save
flash[:success] = "Website Added!"
redirect_to(profile_url)
else
render 'new'
@title = "Add New Website"
end
end
def destroy
end
end
require 'spec_helper'
describe WebsitesController do
integrate_views
describe "POST 'create'" do
before(:each) do
activate_authlogic
@user = Factory(:user)
UserSession.create(@user, true)
@attr = {
:domain => "http://www.example.com",
:description => "example site"
}
@website = Factory(:website, @attr.merge(:user => @user))
@user.websites.stub!(:build).and_return(@website)
end
describe "failure" do
before(:each) do
@website.should_receive(:save).and_return(false)
end
it "should render the 'new' page" do
post :create, :website => @attr
response.should render_template('websites/new')
end
end
describe "success" do
before(:each) do
@website.should_receive(:save).and_return(true)
end
it "should redirect to the profile page" do
post :create, :website => @attr
response.should redirect_to(profile_url)
end
it "should have a flash message" do
post :create, :website => @attr
flash[:success].should =~ /website added/i
end
end
end
end