Comments (4)
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.
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.
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.
El issue que genero la modificación primera fue este #18
from fiuba-algo3-tp2.
Related Issues (20)
- Pasar todos los paquetes a modelo HOT 1
- Hay algunas excepciones sueltas fuera de los paquetes que la utilizan o cualquiera sea la forma en que vayamos a organizarlas
- Refactorizar seniorities test
- FieraSalvajeTest pruebas sin mock podria pasar a otro paquete
- obtenerEquipamiento se tan solo es utilizada para testear, con algo de ganas se puede quitar el metodo HOT 1
- SinConcecuencia es una clase anemica HOT 1
- Refactor AssertEquals de energia
- CasillerosFactory no implementa el patron Factory HOT 1
- El equals de la clase equipamiento esta raro.
- Hay numeros que podrian cambiar por constantes, varios en FieraSalveje, uno en comida HOT 1
- El atributo booleano de gladiador EstaHabilitadoParaMover podria ser una entidad, de esa forma pueden sacar el if del metodo avanzar.
- Si un jugador tiene una energía inferior a 0, ese turno se pasa y se le acreditan 5 puntos extra HOT 1
- Asiste a un Bacanal no debe ser instanciado con la cantidad de tragos
- Los test de la entrega 2 probablemente precisan un refactor HOT 1
- Refactor casos de uso entega 2 HOT 1
- Eliminar el metodo inicializarJuego, dejar la logica dentro del jugarTurno
- callJustOnce en vez de Mockito.times(1)
- Código repetido en clase Camino.java
- Unificar constantes
- Entrega Final
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fiuba-algo3-tp2.