# Sinatra Test -- passare variabili tra piu' test

**URL:** <https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013>\
**Category:** IT\
**Created:** [March 30, 2010, 12:58pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013 "2010-03-30T12:58:08Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 12:58pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/1 "2010-03-30T12:58:08Z")

</div>

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 ?

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 2:39pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/2 "2010-03-30T14:39:23Z")

</div>

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. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 3:33pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/3 "2010-03-30T15:33:12Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 2:40pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/4 "2010-03-30T14:40:33Z")

</div>

2010/3/30 Luca De Marinis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

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”)

😉

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 3:58pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/5 "2010-03-30T15:58:24Z")

</div>

2010/3/30 Simone R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> 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

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 4:09pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/6 "2010-03-30T16:09:31Z")

</div>

metti tutto nello stesso metodo di test  
S

2010/3/30 Luca De Marinis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [March 30, 2010, 6:13pm UTC](https://www.ruby-forum.com/t/sinatra-test-passare-variabili-tra-piu-test/186013/7 "2010-03-30T18:13:00Z")

</div>

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. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
