Giter Site home page Giter Site logo

Sobre inventarioDeEQuiapmiento en caso de Refactor para quitar el getEquipamiento() / obtenerEquipamiento() about fiuba-algo3-tp2 HOT 4 CLOSED

RodriguezNazareno56 avatar RodriguezNazareno56 commented on August 14, 2024
Sobre inventarioDeEQuiapmiento en caso de Refactor para quitar el getEquipamiento() / obtenerEquipamiento()

from fiuba-algo3-tp2.

Comments (4)

hmaldonado12 avatar hmaldonado12 commented on August 14, 2024 1

Por eso lo0 comente en el grupo ya que la primera solucion me hacia ruido. Hice una segunda solucion que se ajusta mas a lo que estamos buscando

from fiuba-algo3-tp2.

fcondori10 avatar fcondori10 commented on August 14, 2024 1

Es cierto que añade complejidad al incluir la clase inventario y ser necesario entender su dependencia con gladiador y los equipos. Es un requerimiento el que el primer premio sea un casco y otro requerimiento el que la fiera provoque perder 15 puntos de energía con el casco. Al ser requerimientos es más difícil que cambien, en cambio los refactor que hagamos nosotros sobre nuestras implementaciones pueden cambiar como en inventario.

Mejor testear sobre el comportamiento esperado si tiene el casco el cual resulta ser que los ataques con las fieras resultan ser de 15 o que al mejorarse recibieses una armadura

Si nos quisiéramos deshacer también del getEnergia propondría lo siguiente. Podemos inicializar al jugador con 15 de energía, premiarlo y afectarlo con la fiera, luego probar si puede avanzar. Como la fiera quita 15 puntos de energía el jugador no puede avanzar y lanza una excepción, la cual por ejemplo, usamos en el caso de uso 3

@Test
public void verificarQueSiRecibeUnPremioPorPrimeraVezObtieneUnCasco() {
   
   // un gladiador inicializado con 15 puntos de energía y premiado por primera vez

   fiera.afectarGladiador(gladiador)
   //Assert
   Throwable exception= Assertions.assertThrows(MovimientoExeption.class, () -> {
        this.gladiador.mover();
    }) 

Lo que sucede es que tambien deberiamos probar el caso contrario, en el que tiene 16 de energía al inicio y aún con el ataque de la fiera puede avanzar. De esta forma sabriamos que el gladiador tiene el casco pues aún con un ataque de 15 de energía el gladiador aún puede moverse debido a la resistencia del casco
Parece algo rebuscado, pero el ataque de la fiera es algo establecido por contrato

from fiuba-algo3-tp2.

Jmsosaa avatar Jmsosaa commented on August 14, 2024 1

Comparto la forma de testear el caso de uso como menciono Gustavo. El gladiador se inicia con Energia = 20 y al obtener por primera vez Equipamiento, se le agrega el casco.

Si es atacado por la fiera teniendo un casco, su energia disminuye a 15. Sabiendo que cada avance le cuesta al gladiador un punto de energia, podemos hacer que avace 5 veces para que agote toda su energia.

Al intentar avanzar una 6ta vez verificamos que se lanze la exepcion "El gladiador no se puede mover sin energia".

from fiuba-algo3-tp2.

RodriguezNazareno56 avatar RodriguezNazareno56 commented on August 14, 2024

El issue que genero la modificación primera fue este #18

from fiuba-algo3-tp2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.