No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Crear modelos y validaciones + tests

9/33
Recursos

Aportes 8

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Test-driven development (TDD) Es decir, diseño orientado por las pruebas.

Es una práctica de programación que consiste en escribir primero las pruebas (generalmente unitarias), después escribir el código fuente que pase la prueba satisfactoriamente y, por último, refactorizar el código escrito.

Con esta práctica se consigue entre otras cosas:

  • Codificar de forma “natural” como lo hacemos cuando pensamos en algo, primero pensamos en “qué” queremos hacer y después pasamos al “cómo” como lo haremos
  • un código más robusto, más seguro, y mantenible
  • Mejorar el comportamiento de nuestra app al buscar código duplicado y agruparlo en funciones y utilizar la herencia o el polimorfismo
  • Escribir el código de lo que realmente necesitamos y no lo que creeremos que podríamos utilizar

Como todo tiene cosas no tan buenas, cómodas o fáciles depende del punto de vista, puedes verificarlas en el link.

Conceptos extraídos de:

Creación de modelos
rails g model user email:string name:string auth_token:string
rails g model post title:string content:string published:boolean user:references

Después de ejecutar los comandos:
En el archivo create_posts.rb dentro de db > migrate tenemos el siguiente código, donde vemos que post tiene referencia a user con foreign_key

class CreatePosts < ActiveRecord::Migration[5.2]
  def change
    create_table :posts do |t|
      t.string :title
      t.string :content
      t.boolean :published
      t.references :user, foreign_key: true

      t.timestamps
    end
  end
end

a mi me gusta agregar esta gema tambien a mis proyectos annotate, ayuda mucho para tener actualizado los modelos.

Habría puesto el content como text en vez de string

Me generó el siguiente error al correr el generador de modelos:
check_part’: Missing :controller key on routes definition, please check your routes. (ArgumentError)

Tuve que comentar la linea de " get ‘/health’" en routes.

Pueden mencionar alguna situación emn particular donde TDD no sea una buena aproximación?

Al ejecutar el comando para generar mi modelo, en la respuesta de este, no se está generando el user_spec.rb. En mi caso solo genera:
invoke active_record
create db/migrate/20190324171556_create_users.rb
create app/models/user.rb
Cuando generé el proyecto le especifiqué --database:postgres que es con la base de datos que yo voy a trabajar no sé si ha podido influir…

Gracias por tu opinión!