Ir al contenido

{ Archivos por etiquetas } rails

Pruebas en Ruby/Rails

Seguimos peleando intentando dar con la mejor manera para hacer pruebas, pero por ahora parece que el ganador está siendo la combinación de RSpec con rcov que te permite medir el depender de los fixtures en Rails estamos utilizando FixtureReplacement2, aunque por ahora no tengo claro cuál sería la mejor opción pero es un buen principio y no sería demasiado complicado cambiar las pruebas a otra librería u otra metodología.

Cuando tenga más rodado todo espero poder hablar más extensamente sobre ello, pero si alguien quiere decir algo puede animarse y contar sus experiencias

También etiquetado ,

Datos para testing en Rails

Cualquiera que haya tenido que mantener tests de aplicaciones en Rails habrá llegado a soltar algún improperio al tener que mantener Fixtures (y eso que en Rails 2.0 facilitaron algo la gestión) ya que en cuanto el proyecto tiene algo de envergadura y movimiento ese sistema se vuelve inmanejable, se emplea demasiado tiempo en gestionar unos datos en unos ficheros de texto para solucionar problemas en los tests.

Sin embargo no parece que haya una alternativa ideal para los tests, hay muchas posibilidades y parece que no está clara cual es la forma más adecuada al sistema integrado en Rails. Personalmente me gusta Fixtures Replace 2 y tengo planeado echarle un vistazo a Fixture Scenarios (un interesante artículo: “Fixin’ fixtures“) pero no tengo muy claro cuál sería el mejor método. También tengo pendiente probar RSpec, pero cambiar toda la metodología de tests puede llegar a ser costoso así que me gustaría preguntar aquí ¿qué es lo que más apropiado habéis visto para usar con Rails?

También etiquetado

DataMapper en Ruby

De un tiempo para acá estoy teniendo en cuenta DataMapper, un ORM para Ruby que tiene similitudes con Active Record pero se nota que es una librería posterior por muchos detalles. De las cosas interesantes que puede hacer hay algunas muy dignas de tener en cuenta.

  • Las actualizaciones parciales, que ya se encuentran disponibles en la nueva versión de Active Record en Rails 2.1
  • Actúa contra la base de datos con inteligencia, minimizando en lo posible el número de accesos a las tablas.
  • Las búsquedas son totalmente en Ruby, con lo que no hay que hacer extraños inventos para búsquedas complejas (en ActiveRecord hay que tocar el SQL para unir varias condiciones).
  • Es explícito. Al definir la clase también definimos los campos y el tipado de éstos. En ActiveRecord a veces me siento un poco desorientado ya que las propiedades de la clase se definen al conectar con la base de datos, en DataMapper se definen explícitamente en la clase.
  • Acceso directo. Si tenemos el modelo Post podemos hacer Post[3] en lugar de Post.find(3) y otras muchas más formas de encontrar lo que buscamos.
  • Paranoia. DataMapper incluye de serie el borrado lógico al definir una propiedad como property :deleted_at, ParanoidDateTime. La realidad es que casi siempre que borramos sólo queremos marcar como borrados, y que el ORM de serie incluya esta funcionalidad nos facilita mucho el trabajo. Con ActiveRecord puede conseguirse, pero no es lo mismo

No es oro todo lo que reluce y DataMapper todavía no está completo del todo (siguen trabajando en las relaciones entre objetos y algunas cosas más) pero la verdad es que para proyectos Ruby que no sean Rails puede ser una interesante opción, sobre todo si estamos probando algo como Merb con DataMapper.

También etiquetado ,

Rails, ese objeto de deseo

Desde hace ya mucho tiempo estoy utilizando Ruby on Rails para aplicaciones internas y para probar. Realmente tiene cosas muy buenas, y muchas sus características principales se debe al lenguaje que utiliza: Ruby. Resulta bastante refrescante utilizar un framework tan opinado como puede serlo Rails, aunque hay que admitir que en ocasiones puede llegar a complicar algunas cosas.

Este pequeño párrafo sólo pretende ser un pequeño comentario sobre un futuro artículo que me gustaría escribir contando mis opiniones y experiencias sobre esta plataforma.

También etiquetado