Skip to content
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

Merged
merged 14 commits into from Jan 10, 2022
Merged

[IV-21-22] Objetivo 4 #13

merged 14 commits into from Jan 10, 2022

Conversation

aleveji
Copy link
Owner

@aleveji aleveji commented Dec 1, 2021

  • ¿Hay un camino claro que permita ir desde el código hasta la historia de
    usuario que desarrolla, pasando por el mensaje de commit y el issue
    correspondiente?
  • ¿Se ha intentado cubrir una parte de la lógica de negocio que se
    esté desarrollando?
  • ¿Hay un producto mínimamente viable que describa lo que se va a entregar en
    este objetivo?
  • ¿En este producto mínimamente viable se han priorizado unas clases,
    módulos o paquetes más fundamentales frente a otros, movidos a otro
    PMV/Hito?
  • ¿Se han documentado las elecciones de biblioteca de aserciones y de
    framework de test?
  • ¿Esa documentación incluye criterios de aceptación y también criterios de
    búsqueda para las diferentes opciones?
  • ¿Se han seguido los principios F.I.R.S.T. en la creación del test y
    se ha documentado cómo se ha hecho?
  • ¿Se describe claramente en el PMV los tests que hay que pasar para que se
    considere viable?

aleveji and others added 8 commits November 26, 2021 13:25
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.
@aleveji aleveji added this to the [M3] Automatización de tareas milestone Dec 1, 2021
Añade el enlace del documento que justifica la elección del framework de tests
@aleveji
Copy link
Owner Author

aleveji commented Dec 1, 2021

Listo para revisión @JJ

Copy link

@JJ JJ left a 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 + "]";
Copy link

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() {
Copy link

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.

# 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
Copy link

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.

@JJ
Copy link

JJ commented Dec 15, 2021

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.
@aleveji
Copy link
Owner Author

aleveji commented Dec 17, 2021

Listo para revisión @JJ

Copy link

@JJ JJ left a 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"
Copy link

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.

@aleveji
Copy link
Owner Author

aleveji commented Dec 17, 2021

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.

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? 🤔

Copy link

@JJ JJ left a 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");
Copy link

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

@aleveji aleveji merged commit ee131dd into main Jan 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants