Los tests de unidad son tests sobre el modelo de datos, tanto atributos, como métodos del modelo, como relaciones (que al final todo son métodos, pero bueno).

Si lo que queremos testear es una relación con otro modelo, podemos utilizar combinaciones de asserts.

Si nuestros modelos son:


 class Foo < ActiveRecord::Base
   belongs_to :bar
 end

 class Bar < ActiveRecord::Base
   has_many :foos
 end
 

El test de unidad de Bar podría contener este test sobre la relación:


 def test_foos
   bar = Bar.find(1)
   # testeamos que responde al método :foos
   assert_respond_to bar, :foos
   # testeamos que :foos devuelve un Array
   assert bar.foos.is_a? Array
   # testeamos que :foos es un Array de Foo
   assert !bar.foos.empty?
   assert bar.foos.first.is_a? Foo
 end
 

Es sólo una propuesta, y es artesanal 100%, pues ya se sabe que para esto de los tests no hay reglas fijas, sino experiencias personales sobre qué resulta más efectivo.

Así que se proponen sugerencias.