Sto tentando di ASCIUGARE alcuni test sul gelsomino estraendo esempi condivisi.Jasmine ha condiviso problemi con lo scope con il coffeescript
@sharedExamplesForThing = (thing) ->
beforeEach ->
@thingy = new thing
it "is neat", ->
expect(@thingy.neat).toBeTruthy()
describe "widget with shared behavior", ->
sharedExamplesForThing(-> new Widget)
Questo funziona bene quando tutto è definito in un unico file. I problemi che sto incontrando si verificano quando provo a spostare gli esempi condivisi in un file separato. Ottengo Can't find variable: sharedExamplesForThing ...
Così nell'interesse di debug, ho provato la seguente:
describe "widget with shared behavior", ->
it "is acting like a meany", ->
console.log sharedExamplesForThing
expect(false).toBeTruthy()
sharedExamplesForThing(-> new Widget)
Nel blocco is acting like a meany
, il registro mostra sharedExamplesForThing
come [Function]
ma ho ancora ottenere il Can't find variable
al di fuori del it
. Penso che questo potrebbe avere qualcosa a che fare con un problema di scoping al di fuori della mia esperienza attuale, ma potrei sbagliarmi completamente. Cosa mi manca qui?
(usando le rotaie, riso jasmine, guard-gelsomino)
Il tuo post è altamente incompleto. In primo luogo, manca il 'sharedBehaviorForGameOf 'di cui si sta parlando, e in secondo luogo, sto avendo un file spec di prova che è quasi il 100% della tua replica, anche alla gerarchia esatta e con un solo' it() 'blocco per 'describe()' block, e ancora, le mie variabili "condivise" sono visibili solo al mio primo test e non sono referenziabili in nessun altro test al di sotto del primo. Penso che poche persone come me apprezzeranno se completi il tuo articolo e fornisci alcuni suggerimenti su vars/funzioni condivise. Oltre a questo, hai fatto un ottimo lavoro in biblioteca, lo adoro. – dimitarvp
Ho dimenticato di menzionare che sto cercando di usare le vars condivise nei blocchi 'runs()' che consumano il risultato di una chiamata AJAX reale (non presa in giro). Forse è un problema di scoping, poiché ovviamente i tuoi esempi di vanilla funzionano abbastanza bene. – dimitarvp