Test de unidad


#1

Hola a todos,
estoy empezando con Rails y quería hacer test de unidades de los
modelos, el problema es que tengo un modelo con herencia simple de
tabla:

class Node ActiveRecord::Base
act_as_tree
end

class Project < Node
end

class Task < Project
end

class Milestone < Node
end

y no se como ponerlo en los test de unidad, todo el rato falla diciendo
que no existe una tabla projects , tasks o milestones en la bd
¿alguien sabe como se pone?

Gracias y un saludo


#2

Hola!

Estos problemas suelen ser porque no encuentra los ficheros donde estan
las clases. Lo puedes solucionar de varias maneras, pero la mas sencilla
es meter cada clase en un fichero que coincida en nombre:
Node > node.rb
Project > project.rb
Task > task.rb
Milestone > milestone.rb

Espero que te ayude
Un saludo
Roberto M. Oliva

El jue, 22-03-2007 a las 21:01 +0100, Gerardo Vázquez escribió:


#3

Me respondo :smiley:
usando STI al hacer un Project.find(:all) si antes has buscado las
tareas con Task.find(:all), al ser subclases y estar ya cargadas te las
añade a la lista de proyectos, vamos que en realidad es como si hiciera
Project.find(:all, :include => :subclass_objects) lo he solucionado
usando collect (para recoger solo los objetos de tipo proyecto) y
compact!

Otra cosilla ¿cual es el sitio para añadir una gema (money en este caso)
para que la vea toda la aplicación? lo he puesto al final de
enviroment.rb -> gem ‘Money-1.7.1’, pero el servidor falla al arrancar.

Gracias y un saludo

Gerardo


#4

Hola Roberto
gracias por responder, lo cierto es que eso ya lo tengo puesto,
un modelo en cada fichero, el problema es que conectaba mal con la bd.
Vi posible solución poniendo todos los fixtures en el de la clase base
(en mi caso :nodes) la pega que tiene (me sigue fallando) es que si
encuentra los fixtures y los carga, pero no se que hace con los tipos de
las clases, pq si tengo 8 entradas (2 para cada tipo de clase) al
cargar no me los distingue del todo. Dice que hay 8 nodes , 4 projects y
las tasks y milestones si coge bien los 2 que hay. Supongo que lo que
hace es sequir el árbol de herencia para determinar el tipo y va
subiendo (¿y acumulando?) en nº de tipos. ¿hay alguna manera de evitar
esto?

por si ha alguien le interesa rspec (q es lo que estoy usando):

http://rspec.rubyforge.org/documentation/rails/install.html
http://www.lukeredpath.co.uk/2006/8/29/developing-a-rails-model-using-bdd-and-rspec-part-1

Un saludo

Roberto M. Oliva escribió: