Próbuję wysuszyć kilka testów jaśminowych, wyodrębniając udostępnione przykłady.Jasmine udostępniła specyfikacje problemów dotyczących zakresu z coffeespptem
@sharedExamplesForThing = (thing) ->
beforeEach ->
@thingy = new thing
it "is neat", ->
expect(@thingy.neat).toBeTruthy()
describe "widget with shared behavior", ->
sharedExamplesForThing(-> new Widget)
Działa to ładnie, gdy wszystko jest zdefiniowane w jednym pliku. Problemy, które napotykam, występują, gdy próbuję przenieść udostępnione przykłady do osobnego pliku. I dostać Can't find variable: sharedExamplesForThing ...
Więc w interesie debugowania, próbowałem następujące:
describe "widget with shared behavior", ->
it "is acting like a meany", ->
console.log sharedExamplesForThing
expect(false).toBeTruthy()
sharedExamplesForThing(-> new Widget)
W bloku is acting like a meany
dziennik pokazuje sharedExamplesForThing
jako [Function]
ale wciąż uzyskać Can't find variable
poza it
. Wydaje mi się, że może to mieć coś wspólnego z kwestią zakresu poza moim obecnym doświadczeniem, ale mogę się w tej sprawie całkowicie mylić. Czego tu mi brakuje?
(za pomocą szyn, jasminerice, strażnik-jaśminu)
Twój blog post jest wysoce niekompletne. Po pierwsze, brakuje tu 'sharedBehaviorForGameOf ', o którym tutaj mowa, a po drugie, mam plik specyfikacji testu, który jest prawie w 100% twoją repliką, nawet do dokładnej hierarchii i posiada tylko jeden blok' it() 'na 'opisz()' blok, a mimo to moje zmienne "udostępnione" są widoczne tylko dla mojego pierwszego testu i nie można ich porównywać z żadnymi innymi testami poniżej pierwszego. Myślę, że niewielu ludzi takich jak ja z pewnością doceni, jeśli wypełnisz swój artykuł i podasz kilka wskazówek dotyczących wspólnych vars/funkcji. Poza tym świetnie spisałeś się w bibliotece, uwielbiam to. – dimitarvp
Zapomniałem wspomnieć, że próbuję użyć wspólnych vars w blokach 'run()', które pochłaniają wynik prawdziwego (nieokiełznanego) wywołania AJAX. Może to problem z zakresu, ponieważ oczywiście twoje przykłady z wanilii działają całkiem nieźle. – dimitarvp