-si el assert dió OK, es porque encontró los datos en la BD. En todo caso,
agregá una llamada al debugger adentro del test y probá desde ahí. Para
llamar al debugger:

  require 'ruby-debug'
  debugger

también hay una guía de debugging. en
http://guides.rubyonrails.org/debugging_rails_applications.html (la mano de
miloops estuvo ahi).

-también podés probar de ver log/test.log, por ejemplo con tail -f
log/test.log, ahí aparecen las consultas SQL que tiran los test. Fijate si
los INSERT aparecen ahí.

saludos, Maximiliano

2009/12/29 Bizancio Spirit <[email protected]>

> Hola a todos, gracias por sus respuestas. Todavía no pude solucionar el
> problema.
>
> Corrí *este* test:
>
>
>   def test_rails_lacra
>
>     d = Department.create
>     d.name = "Hola"
>     d.save
>     assert(Department.find_by_name("Hola"));
>
>     p = Person.create
>     p.name = "Hola"
>     p.save
>     assert(Person.find_by_name("Hola"));
>   end
>
> Y dio todo OK. Lo que se me ocurre es que en modo testing, de alguna manera
> no accede a la BD sino que la cachea o algo así. Es lo único que se me
> ocurre. La config de la base de datos de test es la misma que la de
> development, por lo cual es imposible que me haya confundido de base de
> datos. Lo que hago es poner un *breakpoint* en *p=Person.create* y ahí
> hago un select * en la tabla departments y me da Empty Set.
>
> En cuanto a lo de qué quiero testear, no es esto mismo, sino algo que tiene
> que ver con una relacion many_to_many, quería ver que se insertaran los
> valores en la tabla intermedia. Pero no vi ningún valor insertado en la base
> de datos.
>
> El 28 de diciembre de 2009 19:34, Gaston Ramos 
> <[email protected]>escribió:
>
> El Mon, 28 de Dec de 2009, a las 05:08:36PM -0200, Hugo Massaroli dijo:
>> > Hola genteee, estoy de vuelta y en forma de... nuevos problemas con
>> Rails.
>> > He aquí el meollo de la cuestión:
>> >
>> >  * def test_rails_lacra
>> >     d = Department.create
>> >     d.name = "Departamento 1"
>> >     d.save!
>> >     p = Person.create
>> >     p.name = "Jorge"
>> >     p.save!
>> >   end*
>> >
>> Creo que la pregunta acá es: Qué querés testear?, empezá por poner un
>> nombre
>> más descriptivo como:
>>
>> def test_department_should_not_be_valid_without_a_name
>>  d = Department.create
>>  assert_equal d.errors.on(:name), "can't be blank"
>> end
>>
>> algo así que te parece?
>>
>> > Eso está adentro de una unit test. Como ven, un código simple y
>> sencillo. El
>> > tema es que esos save no están funcionando. *Nunca se guarda nada en
>> > la db.*Pensando que Rails por ahí borra la db de prueba en cada test,
>> > debugueo y
>> > detuve el thread justo después del primer thread y nada. No había datos
>> en
>> > la db. Pensé que se trataba del título del test y que Rails podría
>> haberse
>> > ofendido porque lo llamé lacra, pero antes había intentado con un título
>> no
>> > ofensivo y tampoco pasó nada.
>> >
>> > Quizás Rails tenga alguna opción para que en test environment te diga,
>> si si
>> > guardé todo, de todo OK y en realidad no guarde nada en la db. Hay
>> alguna
>> > opción así que pueda definirse en los environments?
>> >
>> > Desde ya les agradezco cualquier ayuda.
>>
>> > _______________________________________________
>> > Ruby mailing list
>> > [email protected]
>> >
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>>
>> --
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a