Ich laufe gerade durch das offizielle EmberJS Tutorial auf ihrer Webseite und bin auf this part. Alles funktioniert perfekt in der App selbst, wenn ich ember serve
ausführen, aber das Problem ist, wenn ich die Komponententests für den neuen Dienst ausführen. Ich betreibe ember test --server
und ich erhalte eine Fehlermeldung, dass ich einen Screenshot von unten nahm:Ember JS tutorial: TypeError: Kann 'Eigenschaft' von undefined nicht lesen
Die Einheit Testcode:
import { moduleFor, test } from 'ember-qunit';
import Ember from 'ember';
const DUMMY_ELEMENT = {};
let MapUtilStub = Ember.Object.extend({
createMap(element, location) {
this.assert.ok(element, 'createMap called with element');
this.assert.ok(location, 'createMap called with location');
return DUMMY_ELEMENT;
}
});
moduleFor('service:maps', 'Unit | Service | maps', {
needs: ['util:google-maps']
});
test('should create a new map if one isnt cached for location', function (assert) {
assert.expect(4);
let stubMapUtil = MapUtilStub.create({ assert });
let mapService = this.subject({ mapUtil: stubMapUtil });
let element = mapService.getMapElement('San Francisco');
assert.ok(element, 'element exists');
assert.equal(element.className, 'map', 'element has class name of map');
});
test('should use existing map if one is cached for location', function (assert) {
assert.expect(1);
let stubCachedMaps = Ember.Object.create({
sanFrancisco: DUMMY_ELEMENT
});
let mapService = this.subject({ cachedMaps: stubCachedMaps });
let element = mapService.getMapElement('San Francisco');
assert.equal(element, DUMMY_ELEMENT, 'element fetched from cache');
});
aus dem Tutorial, mein Verständnis ist, dass this.subject({ cachedMaps: stubCachedMaps })
wird eingerichtet all die maps
für mich, aber es scheint, dass der Dienst selbst undefiniert sein könnte, was zu keiner Eigenschaft führt maps
. Ist das richtig? Was könnte das verursachen?
System-Spezifikationen vom Laufen ember --version
:
- glut-cli: 2.13.0
- Knoten: 6.8.1
- os: Darwin x64
ja, sehr ähnlich. Ich dachte, ich wäre verrückt, also habe ich angefangen, ihren Code einzufügen. Das ist kaputt. Ich werde warten, um zu sehen, ob jemand hier antwortet – codyc4321