Shoulda y assert_difference

Hola,

teniendo esto

context ‘on post to :create’ do
setup do
@term = {:title => “foo”, :body => ‘Lorem ipsum’}
post :create, {:glossary_term => @term}
end

  should_assign_to :glossary_term

  should_set_the_flash_to "El término se ha creado con éxito"
  should_redirect_to "edit_glossary_term_url(@glossary_term)"

end

La única forma de hacer assert_difference sería volver a hacer la
petición dentro del correspondiente bloque. ¿Hay alguna sintáxis
alternativa que me permita hacer un assert_difference de GlossaryTerm
sin repetir la llamada a “post …”? No hes mayor problema, pero lo
desbonitiza un poco :slight_smile:

Mucha gracias.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

El día 7 de julio de 2008 19:47, Manuel González Noriega
[email protected]
escribió:> La única forma de hacer assert_difference sería volver a hacer la

petición dentro del correspondiente bloque. ¿Hay alguna sintáxis
alternativa que me permita hacer un assert_difference de GlossaryTerm
sin repetir la llamada a “post …”? No hes mayor problema, pero lo
desbonitiza un poco :slight_smile:

Yo estoy con el mismo dilema.

Por ahora lo he solucionado con un test normal.

A ver si surge algo en este hilo.

f.

2008/7/8 Fernando G. [email protected]:

A ver si surge algo en este hilo.

f.

Yo tengo que decir que cuando empecé a usar shoulda me planteé lo
mismo varias veces, y no encontré una solución realmente
satisfactoria. Así que simplemente dejé de usarlo, y testeé esas cosas
de otra manera. Ganas por un lado, pierdes por otro. Que cada cual
haga balance =;-)


Sergio Gil Pérez de la Manga
e-mail > [email protected]
blog > http://www.lacoctelera.com/porras

2008/7/8 Sergio Gil Pérez de la Manga [email protected]:

Yo tengo que decir que cuando empecé a usar shoulda me planteé lo
mismo varias veces, y no encontré una solución realmente
satisfactoria. Así que simplemente dejé de usarlo, y testeé esas cosas
de otra manera. Ganas por un lado, pierdes por otro. Que cada cual
haga balance =;-)

Lo he preguntado en el grupo de Shoulda, pero me da que no va a haber
otra manera :slight_smile:

Muchas gracias a los dos


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o simplelogica.net
Recuerda comer mucha fruta y verdura.

2008/7/8 Manuel González Noriega [email protected]:

2008/7/8 Sergio Gil Pérez de la Manga [email protected]:

Lo he preguntado en el grupo de Shoulda, pero me da que no va a haber
otra manera :slight_smile:

Pues sí la había, a raiz de mi consulta se ha creado un patch que
incorpora una macro should_differ de forma experrimental

A ver qué os parece

http://thoughtbot.lighthouseapp.com/projects/5807/tickets/52-add-should_differ-macro#ticket-52-3


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o simplelogica.net
Recuerda comer mucha fruta y verdura.

2008/7/9 Manuel González Noriega [email protected]:

A ver qué os parece

http://thoughtbot.lighthouseapp.com/projects/5807/tickets/52-add-should_differ-macro#ticket-52-3

Funciona¡ :slight_smile:

f.

Parece que lo han cambiado a should_change:

/lib/shoulda/macros:

  # Example:
  #
  #   context "Creating a post"
  #     setup do
  #       Post.create
  #     end
  #
  #     should_change "Post.count", :by => 1
  #   end
  #
  # As shown in this example, the <tt>:by</tt> option expects a 

numeric
# difference between the before and after values of the
expression. You
# may also specify :from and :to options:
#
# should_change “Post.count”, :from => 0, :to => 1
# should_change “@post.title”, :from => “old”, :to => “new”
#
# Combinations of :by, :from, and :to
are allowed:
#
# should_change “@post.title” # => assert the
value changed in some way
# should_change “@post.title” :from => “old” # => assert the
value changed to anything other than “old”
# should_change “@post.title” :to => “new” # => assert the
value changed from anything other than “new”

f.

2008/7/9 Manuel González Noriega [email protected]:

Pues sí la había, a raiz de mi consulta se ha creado un patch que
incorpora una macro should_differ de forma experrimental

A ver qué os parece

http://thoughtbot.lighthouseapp.com/projects/5807/tickets/52-add-should_differ-macro#ticket-52-3

Mola! :smiley: