Ciao a tutti,
sto sviluppando su sinatra usando i test
avrei bisogno di passare una variabile da un test all’ altro.
questo sarebbe l’esempio che ho creato ed ho controllato che i test
vengono
eseguiti nell’ ordine corretto
def test_working1
@testvariable = “xxxx”
assert_equal “xxxx” , @testvariable
end
def test_working2
assert_equal “xxxx” , @testvariable
end
il secondo test fallisce con questa trace
Test::Unit::AssertionFailedError: <“xxxx”> expected but was
.
/home/simone/Aptana RadRails
Workspace/hmapi/hm_sinatra_apptest.rb:236:in `test_working2’
Qualche suggerimento ?
Se anche sinatra usa lo stesso framework di test di rails, potresti
provare
a mettere @testvariable = “xxxx” nel metodo setup della tua classe di
tests
- altrimenti vedere se usa una cosa
Pero’ siccome non e’ davvero una iv userei una costante.
TESTCONST = “xxxx”.freeze (per essere sicuri che sia davvero costante!)
2010/3/30 Simone R. [email protected]
Luca De Marinis wrote:
Se anche sinatra usa lo stesso framework di test di rails, potresti
provare
a mettere @testvariable = “xxxx” nel metodo setup della tua classe di
tests - altrimenti vedere se usa una cosa
Pero’ siccome non e’ davvero una iv userei una costante.
TESTCONST = “xxxx”.freeze (per essere sicuri che sia davvero costante!)
il problema e’ che la variabile viene riempita durante i test , nel
setup
non ho ancora il valore che voglio.
nel mio caso specifico il primo test mi crea un utente e ritorna un
valore
nel test successivo devo usare quel valore per fare una query
2010/3/30 Luca De Marinis [email protected]
Se anche sinatra usa lo stesso framework di test di rails, potresti
provare
a mettere @testvariable = “xxxx” nel metodo setup della tua classe di tests
- altrimenti vedere se usa una cosa
(mi ero scordato: “del genere”)
2010/3/30 Simone R. [email protected]
il problema e’ che la variabile viene riempita durante i test , nel
setup
non ho ancora il valore che voglio.
nel mio caso specifico il primo test mi crea un utente e ritorna un
valore
nel test successivo devo usare quel valore per fare una query
Ahhh… non avevo capito!
Ti sembrera’ un escamotage per non rispondere, ma non dovresti fare una
cosa
del genere!
Un test case deve verificare un “fatto” - e un fatto e’ (semplificando
parecchio) che se scrivi una cosa da una parte, poi se la leggi il
valore e’
quello.
Questa cosa e’ cosi’ radicata nei framework di test che niente e nessuno
ti
puo’ neanche garantire che i test vengano eseguiti in particolare
ordine!
Ciao
metti tutto nello stesso metodo di test
S
2010/3/30 Luca De Marinis [email protected]
O fai un helper che ricrea sempre lo stesso oggetto (se tale oggetto
ti serve in ogni test), oppure lo crei nel setup.
2010/3/30 Simone F. [email protected]: