On 29 November 2012 11:58, Raul Sanchez <[email protected]> wrote: > Ahhhh :-) > > Thank you. > > Which will be the right way to do it?
Just fetch it from the db again before tesating it Colin > > El 29/11/2012 12:42, "Colin Law" <[email protected]> escribió: >> >> On 29 November 2012 11:30, Raul Sanchez <[email protected]> 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 [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > -- > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

