Friday, 26 February 2010
File CVS e caratteri riservati
Ad es. se ho un file CSV che contiene la stringa (si noti uso di \ per fare escape del doppio apice):
"ESTRAZIONE FILE \"C\""
Aprendolo e salvandolo da Open Office si avra':
"ESTRAZIONE FILE \C\"""""
quindi con modifica del dato.
Purtroppo occorre ripristinare a mano aprendolo con file di testo quindi e' opportuno che suoi file CSV non si usino caratteri tipo " all'interno dei dati.
Thursday, 18 February 2010
Test 2
Quando si effettuano modifiche alla persistenza occorre inserire anche rispettive modifiche nei test.
if (aTipo == 2) {// 15 - PROGRAMMAREop.setProgrammarePer(ProgrammarePer.converti(record.get(15)));
// 15 - PROGRAMMAREop.setProgrammarePer(ProgrammarePer.converti(record.get(15)));if (aTipo == 2) {
Apparentemente minima ma essa comporta che il campo programmarePer viene settato per tutti i messagi che utilizzano il record RECPROANLZ, in particolare per il metodo extGetProveByAnalizzatore(..).
- e' bene testare il nuovo campo in modo che se un domani cambio idea e rispristino situazione iniziale ho un test che mi segnala dove questo campo non sara' piu' disponibile.
- Se test e' condiviso con persistenza DB (tutti saranno progressivamente condivisi) mi segnala che occorre fare modifica anche su quest'ultima per allinearla con SALKI/SALVAL.
Test modificato:
public void testExtGetProveByAnalizzatore2() {try {List<Prova> rows = lab.extGetProveByAnalizzatore("PSM");........// Spostato da tipo 2 a 1, quindi restituito quiassertEquals(ProgrammarePer.TUTTI, prova.getProgrammarePer());} catch (Exception e) {
Test
public void testExtModificaStatoAnalizzatore2() {
try {
String sigla = "PieSSeeMMe";
List rows = lab.extGetAnalizzatoriByDes(sigla);
assertEquals (1,rows.size());
Analizzatore ana = (Analizzatore) rows.get(0);
if (ana.isStatoColloquio()) {
lab.extModificaStatoAnalizzatore("",
OpAnalizzatore.DISATTIVA_COLLOQUIO, ana.getCod());
} else {
lab.extModificaStatoAnalizzatore("",
OpAnalizzatore.ATTIVA_COLLOQUIO, ana.getCod());
}
assertTrue(true);
} catch (Exception e) {
fail(e.getMessage());
}
}
- Sulle collection specificare il tipo di oggetti contenuti, facilita scrittura e comprensione. Invece di List List<Analizzatore>.
- Dare sempre occhiata che non ci siano warnings oltre che errori (tabs dei problemi).
- Fissare import (CTRL + O).
- Alla fine dei test i dati devono essere invariati. Ad es. se aggiungo accettazione la devo cancellare alla fine del test. Esiste su DBL un modo per ripristinare i dati nel caso si verifichi errore durante esecuzione dei test che ha modificato i dati? Ad es. sul DB spiano e ricarico i dati di test e si riparte sempre dalla stessa situazione.
- Sui test far lanciare le eccezioni, meno codice da scrivere.
- Fare sempre controllo su ID dell'oggetto per sapere se e' lui! Nel test di cui sopra si controlla solo il numero di oggetti restituiti.
- Le verifiche quando e' possibile vanno fatte rileggendo oggetti modificati dalla persitenza. Nell'esempio di cui sopra il test uscirebbe positivo anche se lo stato dell'analizzatore non e' cambiato: si testa solo che la chiamata non generi eccezione.
Passi della via di mezzo
Giusti punti di vista: punti di vista, cioe', e parere esenti da falsi concetti e da fini egoistici
Giueste aspirazioni: grazie alle quali si possono avere intenzioni e opinini nobili e degne
Giusto modo di esprimersi: grazie al quale si e' cortesi, rispettosi e sinceri.
Giusto comportamento: esso consente di essere sereni, onesti e altruisti
Giusto modo di vivere: per attenersi a questo precetto occore evitare di nuocere a uomini e naimali ed e' necessario riconoscere a questi ultimi il diritto all'esistenza.
Giusto impegno: occorre sapersi dominare e sottoporsi ad un addestramento continuo
Giusta circospezione: nel pensare solo cio' che e' giusto e nel fare soltanto cio' che si sa essere giusto.
Giusto rapimento: e' questo il piacere tratto dalla meditazione sulla realta' della vita e del super Io.
