Testear tus tests, vaya redundancia, ¿no? ¡Pues no! Veamos en un ejemplo a qué me refiero:
def test_foo
...
foo = Foo.find_by_nicename('foo_bar')
assert_not_nil foo
# utiliza foo tranquilamente
...
end
O también:
def test_foos
...
foos = Foo.find_all_by_parent_id(1)
assert !foos.empty?
# utiliza foos tranquilamente
...
end
Y es que vais a evitar más de un disgusto comprobando que son válidos los datos que vais a utilizar en el test, un poco en la misma línea de testear tus fixtures.

9 Abr 2007 | 10:44 AM
Pues Blat, aquí me pasa algo parecido a lo que te comentaba en tu siguiente post (los estoy leyendo al verrés;), en particular en lo referente a las fixtures, pero aquí tengo mis dudas sobre que es lo mejor.
A mi me gusta más la idea de, en aquellos casos que sea necesario, tener fixturas que tengan una estructura determinada y colocarles nombres que hagan referencia a dicha estructura, evitando así testear los tests.
Mexplico. En el último ejemplo que ponías yo tendría una fixtura llamada "foo_con_hijos" y dos o más fixturas "hijo_N". La búsqueda de los hijos la haría con Foo.find_all_by_parent_id(foos(:foo_con_hijos).id) o mejor directamente con foos(:foo_con_hijos).children.
Esto hace que en algunos casos las fixturas sean casi tan importantes como propio código de los tests. Pero ¿por qué no? Básicamente porque posteriormente cualquiera o nosotros mismos modificamos las fixturas y nos las vemos y nos las deseamos para localizar el origen del problema.
Pero en la medida que dichas fixturas tengan una semántica asociada es más difícil que las corrompamos.
Entiendo la motivación que hay detrás de testear los tests y cosas como testear que todas las fixturas validan me parecen muy útiles. Pero una vez que sabemos que nuestros tests pasan sus tests ¿no sería mejor sacarlos de la suite para evitar que se ejecuten una y otra vez con los tests de nuestra aplicación?
Esta idea de "desactivación" es fácil si todo está dentro de un "test_fixtures" pero complicado si las aserciones están mezcladas con el código de los "tests verdaderos".
Sin embargo no deseables en
Imagína
9 Abr 2007 | 11:37 AM
uppss!!! por favor, ignórense esas últimas palabrejas. me surgió una "urgencia" y con las prisas publiqué el comentario sin borrarlas.
tengo que escribir un test que valide mis comentarios antes de publicarlos ;)