Have you tried with the double/stub nomenclature as I suggested?
On Saturday, May 26, 2012 9:02:46 PM UTC-7, Kleber Shimabuku wrote:
>
> Anyone?
>
>
>
> Em quarta-feira, 23 de maio de 2012 14h51min38s UTC-3, Kleber Shimabuku
> escreveu:
>>
>> Hi guys,
>>
>> I'm starting to write tests and I writing a functional test for my
>> 'create' action.
>>
>> So, basically I have the following test:
>>
>> describe '#create' do
>>
>> @attributes = { title: 'New post', description: 'Please add some text
>> here', location: 'Anywhere' }
>>
>> context 'when logged in' do
>> login_user
>> before { post :create, @attributes }
>>
>> it 'should create a new post' do
>> post = mock(Post, @attributes)
>> assigns(:post).should_not be_nil
>> Post.should_receive(:save).and_return(post)
>> response.should redirect_to successful_submitted_posts_path
>> end
>> it 'should NOT create a new post' do
>> end
>> end
>>
>> context 'when NOT logged in' do
>> before { post :create, @attributes }
>> it { response.should_not be_successful }
>> it { response.should redirect_to new_user_session_path }
>> end
>>
>> end
>>
>> But it's failing and I don't get understand why.
>>
>> 1) PostsController#create when logged in should create a new post
>> Failure/Error: post = mock(Post, @attributes)
>> ArgumentError:
>> wrong number of arguments (3 for 2)
>> # ./spec/controllers/posts_controller_spec.rb:40:in `block (4
>> levels) in <top (required)>'
>>
>> Finished in 0.77996 seconds
>> 6 examples, 1 failure
>>
>> why mock method expects 3 arguments? what they should be?
>>
>> I have read on some blogs this kind of syntax.
>>
>> mock(Object, hash)
>>
>>
>> And this is my controller:
>>
>> # encoding: utf-8
>> class PostsController < ApplicationController
>> load_and_authorize_resource
>> before_filter :authenticate_user!
>> respond_to :html
>>
>> def new
>> @post = Post.new
>> end
>>
>> def create
>> @post = current_user.posts.build(params[:post])
>> if @post.save
>> redirect_to successful_submitted_posts_path
>> else
>> render :new
>> end
>> end
>>
>> def successful_submitted; end
>> end
>>
>>
>> What I'm doing wrong?
>>
>> Please give me some hints.
>>
>> Thank you.
>>
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/ppfNSs_t6r0J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.