Thursday, November 29, 2012

Re: [Rails] Rspec post controller failure

On 29 November 2012 11:30, Raul Sanchez <raulxininen@gmail.com> wrote:
> Hello:
>
> I'm going crazy with a test of a controller action.
>
> This is the test
>
> describe "POST changetipo" do
> it "toggle tipo of tije" do
> tije = FactoryGirl.create(:tije)
> puts "--------------- #{tije.inspect}--------------"
> post :changetipo, :id => tije.id
> puts "+++++++++++++++ #{tije.inspect} +++++++++++++"
> tije.tipo.should == "2"
> end
> end
>
>
> and this is the controller method
>
>
> def changetipo
> @tije = Tije.find(params[:id])
> @tije.tipo == "1" ? @tije.tipo = "2" : @tije.tipo = "1"
> @tije.save!
> puts "************* #{@tije.inspect} **************"
>
> respond_to do |format|
> format.html { redirect_to root_path, notice: 'Tije type changed' }
> format.json { head :no_content }
> end
>
> end
>
>
>
> and this is the console output:
>
> ---------- #<Tije id: 1, tipo: "1", description: "Hoy" --------------
> ********** #<Tije id: 1, tipo: "2", description: "Hoy" **************
> ++++++++++ #<Tije id: 1, tipo: "1", description: "Hoy" +++++++++++++
>
>
> so, at the beginning tipo is 1. After tije.save! is 2, but when it come back
> to the test, its value is 1 again :(

In the test you are creating a variable and then posting a message
(passing the id) which changes the value in the database. That does
not change the value of the variable in the test. You will have to
read it back from the db again to see the changed value.

Colin

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate