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/-/nN28v1WujRwJ. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.