|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
[Task 9.1] 71104 Vs. TigerShark Pair Reloaded
Allora..
dopo tutte 'ste incomprensioni finalmente abbiamo deciso di iniziare stasera.. e io spero anche di finire dato che nei prox giorni non posso... ![]() a tra poco a tutti i nostri internet-ascoltatori!
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
TestList
Allora..
dopo un'accesa discussione abbiamo deciso di seguire il suggerimento di fek e di fare estendere inizialmente alla calsse Chest il tipo Gem. Questo ha alcune conseguenze... a quanto abbiamo capito i test per la creazione dei Chest e per tutti i metodi in comune con la classe Gem sono già testati, quindi la prima parte del nostro task consiste in un semplice refactoring. Invece per la seconda parte dovremo testare che la probabilità di estrazione dei Chest sia quella voluta.... Per questo direi che ci sono essenzialmente due test fondamentali: 1)Che i Chest vengano generati in media alla frequenza voluta 2)Che due Chest consecutivi non possano uscire (è corretta quest'assunzione???Joc, Vic, Fek????)
__________________
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
secondo me si, il secondo punto è esatto.
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ecco il codice del primo test:
Codice:
public void TestChestType()
{
assertTrue("EMERALD_CHEST is not correctly recognized as a Chest", GemType.EMERALD_CHEST.isChest());
assertTrue("RUBY_CHEST is not correctly recognized as a Chest", GemType.RUBY_CHEST.isChest());
assertTrue("SAPPHIRE_CHEST is not correctly recognized as a Chest", GemType.SAPPHIRE_CHEST.isChest());
assertTrue("TOPAZ_CHEST is not correctly recognized as a Chest", GemType.TOPAZ_CHEST.isChest());
assertTrue("DIAMOND_CHEST is not correctly recognized as a Chest", GemType.DIAMOND_CHEST.isChest());
assertFalse("EMERALD is not correctly recognized as a Gem", GemType.EMERALD.isChest());
assertFalse("RUBY is not correctly recognized as a Gem", GemType.RUBY.isChest());
assertFalse("SAPPHIRE is not correctly recognized as a Gem", GemType.SAPPHIRE.isChest());
assertFalse("TOPAZ is not correctly recognized as a Gem", GemType.TOPAZ.isChest());
assertFalse("DIAMOND is not correctly recognized as a Gem", GemType.DIAMOND.isChest());
}
__________________
|
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ok, ed ecco come è diventata la classe GemType:
Codice:
public final class GemType
{
public static final GemType EMERALD = new GemType("emerald", 40, false);
public static final GemType RUBY = new GemType("ruby", 50, false);
public static final GemType SAPPHIRE = new GemType("sapphire", 60, false);
public static final GemType TOPAZ = new GemType("topaz", 80, false);
public static final GemType DIAMOND = new GemType("diamond", 100, false);
public static final GemType EMERALD_CHEST = new GemType("emerald", 40, true);
public static final GemType RUBY_CHEST = new GemType("ruby", 50, true);
public static final GemType SAPPHIRE_CHEST = new GemType("sapphire", 60, true);
public static final GemType TOPAZ_CHEST = new GemType("topaz", 80, true);
public static final GemType DIAMOND_CHEST = new GemType("diamond", 100, true);
private final String name;
private final int score;
private final boolean isChest;
GemType(String name, int score, boolean isChest)
{
this.name = name;
this.score = score;
this.isChest = isChest;
}
public String name()
{
return name;
}
public int score()
{
return score;
}
public boolean isChest()
{
return isChest;
}
}
ora ci sarebbe da testare se create in base a cosa viene ritornato da isChest capisce se creare un oggetto Gem o un oggetto Chest, e la cosa riesce un po' difficoltosa a causa del fatto che in Java che io sappia non è direttamente possibile ricavare RTTI sul tipo di un oggetto, quindi penso di aggiungere un metodo virtuale isChest anche in Gem e di sovrascriverlo in Chest; fek e vic, se pensate che non ne valga la pena fermateci e reverteremo. intanto scrivo il test per questo metodo che TigerShark implementerà. |
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
prossimi test:
Codice:
public void testGemIsNotChest()
{
Gem gem = Gem.createForTesting();
assertFalse(gem.isChest());
}
public void testChestIsChest()
{
Gem gem = Chest.createForTesting();
assertTrue(gem.isChest());
}
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Evitare metodi tipo isChest(), getType(), etc etc, sono l'esatto motivo per il quale esistono praticamente meta' dei Design Pattern. Trovate sicuramente un modo alternativo (un factory method in GemType?).
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
REVEEEEEEEEEEEEEEEEEEEEERT!
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Fek...ma tu quindi la Reflection la usi??
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
è stata colpa mia ke avrei dovuto pensarci avendolo usato un paio di volte questo pattern....
ma stasera sono proprio fuso
__________________
|
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
eh...? :|
non ho capito cos'è che non devo fare... O_o' che tipo di metodi devo evitare? mi sembrava una soluzione semplicissima quella che avevo inventato... o_O' e funzionava pure... TigerShark dice di aver capito che dobbiamo cambiare e fare in modo che Gem e Chest derivino da una stessa classe di base, ma... non eri stato tu a imporci di derivare Chest da Gem??? :| boh, a me sembrava che andasse tutto liscio... che dobbiamo fare di preciso? |
|
|
|
|
|
#13 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
AAAAAAAAAAHHHHHHHHHHHHHHH FERMIHOCAPITOTUTTO!!!
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Scusatemi... Dal momento in cui avete GemType.isChest() cosa ve ne fate della derivazione? Tenete la classe Gem ormai no?
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
....mi sa ke io sono OUT.....
stasera nn capisco piu' niente e nei prox giorni sono a reggio.... ke si fa?
__________________
|
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
TigerShark, ricominciamo daccapo, e stavolta andremo più veloci; allora, ho capito il democratico suggerimento di fek, dobbiamo cancellare isChest e mettere un public static Gem createByType, giusto?
scrivo il test... |
|
|
|
|
|
#17 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
C'è un volontario x continuare con 71104 ke io nei prox giorni non ci sarò???
__________________
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Io prima di sabato niente mi spiace
|
|
|
|
|
|
#20 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
le cose si complicano: a TigerShark è caduta nuovamente la linea e a me per continuare serve di sapere la sintassi di instanceof, che serve in Java per ricavare RTTI; lo devo usare per forza nei test se non devo fare metodi virtuali, altrimenti il metodo statico Gem.create rimarrà non testato...
siccome s'è fatto tardi è meglio continuare domani, faccio un commit per essere sicuri che la codebase non contenga quei metodi virtuali che avevamo iniziato a scrivere. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:44.




















