-----Controller --------------
def update
@user = User.find_by_id( user.id )
if request.post?
unless params[ :user ].nil?
if @user.update_attributes( params[ :user ] )
redirect_to :action => :show
end
else
render :status => 400,
:text => ''No user parameters
end
------- spec -------------
describe UserProfilesController do
before(:each) do
@user = mock_model(User)
controller.stub!(:requires_user).and_return @user
controller.stub!(:user).and_return @user
User.stub!(:find_by_id).and_return(@user)
@user.stub!(:update_attributes).and_return(true)
end
it "should find User and return object" do
User.should_receive(:find_by_id).with("1").and_return(@user)
@user.should_receive(:update_attributes).and_return(true)
post :update, :id =>"1", :user => {}
end
end
------- Error --------------------------------
<User(id: integer, created_on: datetime, updated_on: datetime, destroyed_on:
dat
etime, accessed_on: datetime, email_address: string, name_first: string,
name_la
st: string, mailing_address_id: integer, billing_address_id: integer,
name_displ
ay: string, picture_id: integer, url: string, country: string, freelance:
boolea
n, statement: string, hostname_active: boolean, hostname: string,
promotional_ma
ilings: boolean, sales_commission_rate: float, referral_commission_rate:
float,
employee_lock: boolean) (class)> expected :find_by_id with ("1")
but
received it
with ([1001])
How shall I pass the id to the spec. Please help overcome this issue
--
View this message in context:
http://www.nabble.com/Passing-user-id-to-spec-%7C-error-tp23553916p23553916.html
Sent from the rspec-users mailing list archive at Nabble.com.
On Fri, May 15, 2009 at 1:02 AM, manoah <diwakar at angleritech.com> wrote:> > ?-----Controller -------------- > def update > ? ?@user = User.find_by_id( user.id )This uses user.id, not params[:id]> ? ?if request.post? > > ? ? ?unless params[ :user ].nil? > > ? ? ? ?if @user.update_attributes( params[ :user ] ) > ? ? ? ? ?redirect_to :action => :show > > ? ? ? ?end > ? ? ?else > ? ? ? ?render :status => 400, > ? ? ? ? ? ? ? :text => ''No user parameters > end > > ?------- spec ------------- > describe UserProfilesController do > > ?before(:each) do > ? ?@user = mock_model(User)The @user gets defined with an ID of 1001 (in this case). Try: @user = mock_model(User, :id => 1) HTH, David> ? ?controller.stub!(:requires_user).and_return @user > ? ?controller.stub!(:user).and_return @user > ? ?User.stub!(:find_by_id).and_return(@user) > ? ?@user.stub!(:update_attributes).and_return(true) > ?end > > it "should find User and return object" do > ?User.should_receive(:find_by_id).with("1").and_return(@user) > ? @user.should_receive(:update_attributes).and_return(true) > ?post :update, :id =>"1", :user => {} > end > end > > ------- Error -------------------------------- > <User(id: integer, created_on: datetime, updated_on: datetime, destroyed_on: > dat > etime, accessed_on: datetime, email_address: string, name_first: string, > name_la > st: string, mailing_address_id: integer, billing_address_id: integer, > name_displ > ay: string, picture_id: integer, url: string, country: string, freelance: > boolea > n, statement: string, hostname_active: boolean, hostname: string, > promotional_ma > ilings: boolean, sales_commission_rate: float, referral_commission_rate: > float, > employee_lock: boolean) (class)> expected :find_by_id with ("1") but > received it > ?with ([1001]) > > How shall I pass the id to the spec. Please help overcome this issue > > -- > View this message in context: http://www.nabble.com/Passing-user-id-to-spec-%7C-error-tp23553916p23553916.html > Sent from the rspec-users mailing list archive at Nabble.com. > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
manoah wrote:> > -----Controller -------------- > def update > @user = User.find_by_id( user.id ) > if request.post? > > unless params[ :user ].nil? > > if @user.update_attributes( params[ :user ] ) > redirect_to :action => :show > > end > else > render :status => 400, > :text => ''No user parameters > end > > ------- spec ------------- > describe UserProfilesController do > > before(:each) do > @user = mock_model(User) > controller.stub!(:requires_user).and_return @user > controller.stub!(:user).and_return @user > User.stub!(:find_by_id).and_return(@user) > @user.stub!(:update_attributes).and_return(true) > end > > it "should find User and return object" do > User.should_receive(:find_by_id).with("1").and_return(@user) > @user.should_receive(:update_attributes).and_return(true) > post :update, :id =>"1", :user => {} > end > end > > ------- Error -------------------------------- > <User(id: integer, created_on: datetime, updated_on: datetime, > destroyed_on: dat > etime, accessed_on: datetime, email_address: string, name_first: string, > name_la > st: string, mailing_address_id: integer, billing_address_id: integer, > name_displ > ay: string, picture_id: integer, url: string, country: string, freelance: > boolea > n, statement: string, hostname_active: boolean, hostname: string, > promotional_ma > ilings: boolean, sales_commission_rate: float, referral_commission_rate: > float, > employee_lock: boolean) (class)> expected :find_by_id with ("1") but > received it > with ([1001]) > > How shall I pass the id to the spec. Please help overcome this issue > >--------------------------------------------------------- Now I am getting the below error> expected :find_by_id with ("1") but received it with ([1])How shall I pass ---------------------------------------------------------- -- View this message in context: http://www.nabble.com/Passing-user-id-to-spec-%7C-error-tp23553916p23570120.html Sent from the rspec-users mailing list archive at Nabble.com.
manoah wrote:> > -----Controller -------------- > def update > @user = User.find_by_id( user.id ) > if request.post? > > unless params[ :user ].nil? > > if @user.update_attributes( params[ :user ] ) > redirect_to :action => :show > > end > else > render :status => 400, > :text => ''No user parameters > end > > ------- spec ------------- > describe UserProfilesController do > > before(:each) do > @user = mock_model(User) > controller.stub!(:requires_user).and_return @user > controller.stub!(:user).and_return @user > User.stub!(:find_by_id).and_return(@user) > @user.stub!(:update_attributes).and_return(true) > end > > it "should find User and return object" do > User.should_receive(:find_by_id).with("1").and_return(@user) > @user.should_receive(:update_attributes).and_return(true) > post :update, :id =>"1", :user => {} > end > end > > ------- Error -------------------------------- > <User(id: integer, created_on: datetime, updated_on: datetime, > destroyed_on: dat > etime, accessed_on: datetime, email_address: string, name_first: string, > name_la > st: string, mailing_address_id: integer, billing_address_id: integer, > name_displ > ay: string, picture_id: integer, url: string, country: string, freelance: > boolea > n, statement: string, hostname_active: boolean, hostname: string, > promotional_ma > ilings: boolean, sales_commission_rate: float, referral_commission_rate: > float, > employee_lock: boolean) (class)> expected :find_by_id with ("1") but > received it > with ([1001]) > > How shall I pass the id to the spec. Please help overcome this issue > >Thank you David. The example passes when we pass the id as string @user = mock_model(User, :id=> "1") -- View this message in context: http://www.nabble.com/Passing-user-id-to-spec-%7C-error-tp23553916p23570544.html Sent from the rspec-users mailing list archive at Nabble.com.