tutorial tests test spec run rails describe app ruby-on-rails unit-testing ruby-on-rails-3 rspec2 shoulda

ruby-on-rails - describe - run rspec tests rails



¿Cómo probar los alcances? (2)

David Chelimsky (el creador de Rspec) ofreció el siguiente ejemplo en el Grupo de Google Rspec :

describe User, ".admins" do it "includes users with admin flag" do admin = User.create! :admin => true User.admin.should include(admin) end it "excludes users without admin flag" do non_admin = User.create! :admin => false User.admin.should_not include(non_admin) end end class User < ActiveRecord::Base named_scope :admins, :conditions => {:admin => true} end

Obviamente no es el mismo ejemplo que el tuyo, pero debería darte una idea de cómo hacerlo. El hilo relevante para el contexto está aquí: http://groups.google.com/group/rspec/browse_thread/thread/6706c3f2cceef97f

Intenté encontrarlo pero sin éxito. Solo me preguntaba cómo podría probar los alcances en Rails 3.

Podría estar usando rspec, shoulda o simplemente una unidad de prueba.

Gracias.

En realidad, lo intento de esta manera, pero no es una prueba completa, ya que todavía es necesario poner el método order ().

El alcance:

scope :recents_available, where(:available => true, :locked => false).order("created_at DESC") describe Job, ":recents_available" do it "should have the scope" do Job.should respond_to(:recents_available) end it "should include recents jobs that are available and unlocked" do @job = Factory(:job, :available => true, :locked => false ) Job.recents_available.should include(@job) end

fin


Estoy seguro de que hay una solución más elegante, pero siempre he configurado algunos objetos que deberían y no deberían estar en mi alcance. Después de llamar al ámbito, compruebo que el objeto devuelto tiene el objeto que debería y no tiene el objeto que no debería.

En todo caso, espero ser iluminado por otras respuestas.