Después de trabajar con ASP.Net MVC, tengo que pensar en Rails. Trabajé con Rails anteriormente, pero estoy un poco oxidado. Los tutoriales ASP.Net MVC recomiendan ocultar la implementación de la capa de datos con el patrón de repositorio. Esto permite una inyección de dependencia más sencilla para las pruebas unitarias y un agradable desacoplamiento del controlador de la implementación del modelo.Ruby on Rails with Repository Pattern?
Recuerdo los controladores de Rails que usan objetos Active Record directamente, y las pruebas de unidades usando bases de datos de prueba que se pueden configurar y desmontar con facilidad. Eso resuelve la necesidad de cambiar para pruebas unitarias, pero aún parece una mala idea tener tanto código ActiveRecord expuesto en el controlador.
Así que mi pregunta es, ¿cuál es la última mejor práctica aquí? ¿Se siguen utilizando bases de datos reales (sin burlarse) para las pruebas unitarias? ¿Los desarrolladores de Do Rails llaman a ActiveRecord directamente, o una abstracción?
sí 1000x constituye una capa de datos. no está tan bien acoplado como el uso de cadenas de SQL específicas del proveedor, pero las clases de AR trazan 1 a 1 con tablas de bases de datos en su mayor parte. (y esto es cierto de los rieles en general) fomenta un estilo de programación en el que no hay diferencia entre los objetos de negocio y las tablas de db. el RP está específicamente diseñado para hacer esta distinción. – Jonah