Mam inicjator stdlib
. W tym inicjalizatorze ponownie otwieram niektóre wbudowane klasy Ember i dodajemy niestandardowe metody. Na przykład dodałem reverseEach
do Ember.Enumerable
i Array
.Użycie inicjalizatora w teście jednostki?
Działają dobrze w aplikacji, ale w testach otrzymuję "reverseEach: undefined nie jest funkcją".
Jak mogę wskazać, że test powinien korzystać z inicjalizatora?
Próbowałem needs: [..., 'initializer:stdlib']
. Nie potyka się o to, ale nadal otrzymuję błąd "nieokreślony".
Oto przykład testu:
`import { test, moduleForModel } from 'ember-qunit'`
moduleForModel 'foo', 'foo',
needs: [
'model:bar'
'initializer:stdlib'
]
test 'deleteLastNItems', ->
model = @subject()
model.set '', ['foo', 'bar', 'baz', 'quux']
model.deleteLastNItems 2 # This should not die with "reverseEach: undefined is not a function"
deepEquals model.get('someProperty'), ['foo', 'bar']
pytanie jest sposób testowania inicjatora się, ale jak do testowania innego urządzenia (np modelu..), Które wykorzystuje się metody małpy poprawione z inicjatora. –
pl, możesz wyodrębnić metodę z łatką małp do Ember.mixin, a następnie zaimportować Mixin zamiast inicjatora. – zhenhua
Jestem małpką łatającą Ember, a nie model. Na przykład dodaję nową metodę do 'Ember.MutableArray': metoda' .destructiveMap() ', która modyfikuje daną tablicę zamiast zwracania nowej tablicy. –