New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[IV-21-22] Objetivo 4 #13
Conversation
Añade el método toString a la clase Ingrediente para poder llevar a cabo la comprobación de la correcta creación de un Ingrediente en los tests.
Añade la clave test que punta al fichero de los test del repositorio
Añade el export para que pueda ser importado posteriormente
Añade el directorio en el que se encuentran los test del proyecto
Añade un test que comprueba el correcto funcionamiento de la clase Ingrediente. Para que se pase el test debe funcionar correctamente la creación de un Ingrediente y tanto el getter de su nombre como el de calorías deben funcionar correctamente.
Añade imágenes de ejecuciones de test con distintos frameworks como Mocha y Jest.
Añade el enlace del documento que justifica la elección del framework de tests
Listo para revisión @JJ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Problema principal: ni hay lógica de negocio, ni la testeas. Problemas adicionales sobre las herramientas elegidas y el hecho de que el milestone lo has asignado a voleo en vez de molestarte en incluir lo que surja de este objetivo en el producto mínimamente viable.
return this.calorias; | ||
} | ||
|
||
toString() { | ||
return "Ingrediente -> " + this.nombre + " [Calorias: " + this.calorias + ", Grasas: " + this.grasas + ", Hidratos: " + this.hidratos + ", Proteinas: " + this.proteinas + "]"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Esto sería mucho más fácil si usaras un diccionario.
app/test/test.js
Outdated
}); | ||
}); | ||
|
||
describe('Getters', function() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No estás testeando ninguna lógica de negocio. Está bien que testees, para dejar el interfaz fijado, pero lo que se pide en este objetivo es que se testee la lógica de negocio.
docs/eleccion_framework_test.md
Outdated
# Elección framework test | ||
## Mocha | ||
Para ejecutar los test de mi proyecto estaba indeciso entre Mocha y Jest, pero finalmente me decidí | ||
por Mocha ya que es uno de los frameworks más antiguos y cuenta con una gran comunidad. Además, trás |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dices antiguo, leo viejo. No solamente tienes que elegir un test runner, sino también una biblioteca de aserciones. Mira los errores frecuentes de la semana 13 para ver cómo hacer una elección técnica.
Ping? |
Para ejecutar los test ahora se utilizará aqa en lugar de mocha
Añade el getter de proteinas a la clase Ingrediente y añade una función que maximiza las proteinas minimizando las calorias y devuelve un conjunto de Ingredientes para obtener una receta ideal en función de un objetivo de proteinas y calorias.
Actualiza el test para aqa. Ahora se crean 5 ingredientes y se comprueba su correcta creación y el correcto funcionacmiento de sus getters. Además, se comprueba el correcto funcionamiento de la función maxProteinas.
Añade imagen de varias ejecuciones de los tests con aqa.
Justifica la elección de aqa como nuevo testing framework.
Listo para revisión @JJ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Te perdonaría lo de que no has puesto los criterios de elección ni las diferentes opciones por la originalidad de usar aqa, pero es que también tienes que tratar de testear la lógica de negocio, no solo creación de objetos, así que del tirón haz los dos, porfa.
@@ -22,6 +22,7 @@ | |||
}, | |||
"homepage": "https://github.com/aleveji/BuscaRecetas#readme", | |||
"dependencies": { | |||
"mocha": "^9.1.3" | |||
"aqa": "^1.2.14" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Es una dependencia de desarrollo.
Para testear la lógica de negocio lo que hecho ha sido una función que maximiza las proteínas en función de las calorías como me comentaste el otro día en clase. ¿No sería suficiente con esto? 🤔 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, aprobado, pero como te he dicho si cambias las cosas comentadas antes del siguiente, mejor.
t.deepEqual(newIngrediente5.getCalorias(), 130, "Getter de calorias de Atún no funciona correctamente"); | ||
t.deepEqual(newIngrediente5.getProteinas(), 29, "Getter de proteinas de Atún no funciona correctamente"); | ||
|
||
t.deepEqual(ingrediente.maxProteinas(ingredientes,100).toString(),"Lechuga,Tomate,Piña","La funcion maxProteinas no funciona correctamente"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, ya lo veo. El mensaje debe ser en positivo
usuario que desarrolla, pasando por el mensaje de commit y el issue
correspondiente?
esté desarrollando?
este objetivo?
módulos o paquetes más fundamentales frente a otros, movidos a otro
PMV/Hito?
framework de test?
búsqueda para las diferentes opciones?
se ha documentado cómo se ha hecho?
considere viable?