Depurando Test/unit con Rails
A veces necesitamos depurar dentro de un test unitario en Rails. Para ello instalamos la gema ruby-debug en ruby < 1.9 y ruby-debug19 para ruby para esta versión de ruby. Podemos poner la linea:
gem 'ruby-debug19', :require => 'ruby-debug'
En el fichero Gemfile de nuestro proyecto Rails y ejecutar:
bundle install
En el test que queremos depurar añadir la línea:
require 'ruby-debug'
y justo antes de la linea que queremos depurar añadir la línea:
debugger
Una vez que el código llegue a esta línea nos saltará una consola rdb. En esta consola podemos arrancar una consola irb y así tener acceso a los objetos de nuestro test. Por ejemplo, en un caso real:
Loaded suite test/unit/event_test
Started
.F..test/unit/event_test.rb:54
assert @world_image.save
(rdb:1) @world_image
*** Unknown command: "@world_image". Try "help".
(rdb:1) irb
ruby-1.9.2-p180 :001 > @world_image
=> #<Image id: nil, world_id: 558, created_at: nil, updated_at: nil, image_file_name: "avatar.jpg", image_content_type: "image/jpeg", image_file_size: 13170, image_updated_at: "2011-04-28 13:45:59", uploader_id: 1415>
ruby-1.9.2-p180 :002 > @world_image.save
=> false
ruby-1.9.2-p180 :003 > @world_image.errors
=> {:image=>["Paperclip::CommandNotFoundError", "Paperclip::CommandNotFoundError"]}
Posted in Rails | no hay comentarios |
Trackbacks
Use the following link to trackback from your own site:
http://www.killall-9.net/trackbacks?article_id=824