salve a tutti,
sentite, non riesco a capire i test automatizzati di Rails.
Secondo il libro, il ciclo di vita di un test prevede che per ogni
metodo ( che sarebbe in pratica un test da eseguire ) si verificano
sempre 3 eventi:
1) la cancellazione di tutti i record della tabella in esame
2) il caricamento di tutti i dati di test elencati nel file di fixture
della tabella ( ad esempio products.yml )
3) L''esecuzione del metodo setup() ( che altro non fa che caricarsi in
una variabile il risultato della query di inizializzazione dei dati
della tabella ).
Sempre secondo il libro, anche se un metodo di test aggiorna il database
di test, questo viene riportato al suo stato predefinito prima che inizi
il successivo metodo. Ci? significa quindi che i test da eseguire non
dipendono dai risultati di test gi? eseguiti.
Ho analizzato le query, ed ho notato che alla fine di ogni test esegue
un rollback.
Io ho installato nel mio sistema MySQL 4.1.20, ma questi rollback non
funzionano.
In pratica i test non funzionano, in quanto i primi metodi che esegue
influenzano eccome i successivi.
Qualcuno di voi ha gi? avuto esperienza di ci?, oppure pensate che i
test automatizzati non siano parte integrante dello sviluppo (e non
solo) di un progetto?
grazie mille
Ah dimenticavo, io le tabelle le ho create normalmente, come indicato
dal libro, quindi senza badare al tipo di tabella ( MyISAM oppure InnoDB )
--
/\/\ariano Di Felice
Java PHP Python Ruby programmer
with MySQL, PostgreSql, SQLite and Oracle support
Linux Platform Developer
mariano.difelice@gmail.com
Tel. 0735 703735
Cell +39 339 6407211
---------------------------------------------------------
NO ai brevetti software! http://www.nosoftwarepatents.com
---------------------------------------------------------
Nota di riservatezza:
Il presente messaggio, corredato dei relativi allegati contiene
informazioni da considerarsi strettamente riservate, ed ? destinato
esclusivamente al destinatario sopra indicato, il quale ? l''unico
autorizzato ad usarlo, copiarlo e, sotto la propria responsabilit?,
diffonderlo. Chiunque ricevesse questo messaggio per errore o comunque
lo leggesse senza esserne legittimato ? avvertito che trattenerlo,
copiarlo, divulgarlo, distribuirlo a persone diverse dal destinatario ?
severamente proibito, ed ? pregato di rinviarlo immediatamente al
mittente distruggendo l''originale.
Confidentiality Notice:
This message, together with its annexes, contains information to be
deemed strictly confidential and is destined only to the addressee(s)
identified above who only may use, copy and, under his/their
responsibility, further disseminate it. If anyone received this message
by mistake or reads it without entitlement is forewarned that keeping,
copying, disseminating or distributing this message to persons other
than the addressee(s) is strictly forbidden and is asked to transmit it
immediately to the sender and to erase the original message received.
--------------------------------------------------------------------------