validates_presence_of rails example ruby-on-rails ruby-on-rails-4 rspec actioncontroller rspec3

ruby on rails - example - Encuentre un registro recién creado en una prueba de controlador usando RSpec 3 y Rails 4



ruby on rails selenium (2)

No es una buena idea comparar records u objects en pruebas de controlador. En una prueba de create controlador, debe probar la redirección correcta y el cambio del registro.

Puede compare fácilmente sus objetos en una prueba modelo, porque puede seguir fácilmente su registro.

Aún así, puede acceder al registro creado a partir de una prueba si su action tiene una variable que contiene el record como

En el controlador

def create @user = #assign user end

En prueba

assigns(:user).name.should eq "Name" # If it has a name attribute assigns(:user).pending.should be_true # I don''t know how you implemented pending

Puedes echar un vistazo a este artículo

Estoy haciendo una especificación de controlador en Rails 4, y quiero probar los atributos de un registro creado por una acción de controlador. ¿Cómo encuentro el nuevo registro creado?

Por ejemplo, ¿qué podría hacer en lugar de

it ''Marks a new user as pending'' do post :create, params # I don''t want to use the following line user = User.last expect(user).to be_pending end

Las guías de Rails solo hablan brevemente sobre pruebas de controlador, donde menciona probar que Article.count cambia por 1, pero no cómo obtener un nuevo modelo de ActiveRecord.

La pregunta Buscar el registro más reciente en Rails 3 es sobre Rails 3.

Soy reacio a usar User.last , ya que la clasificación predeterminada puede ser distinta de la fecha de creación.


Si un controlador tiene una variable de instancia llamada @user , entonces podemos acceder a ella en RSpec assigns(:user) .