Я пишу блок-тест для моего приложения, написанного в Angular 1 и JSPM с кармой и жасмином.Единичное тестирование углового обслуживания с кармой/жасмином/JSPM
Вот моя карма конфигурация (JSPM раздел):
jspm: {
meta: {
'jspm_packages/github/angular/angular.js': {
format: 'global',
exports: 'angular'
},
'jspm_packages/github/angular/angular-mocks.js': {
format: 'global',
deps: 'angular'
}
},
loadFiles: [
'test/**/*.js'
],
serveFiles: [
'app/**/*.js'
]
},
Для начала, я хочу, чтобы проверить пользовательский угловые услуги:
// imports
class Game {
constructor($rootScope, $http, $timeout, $translate, $location) {
// ...
this.$rootScope.game = this;
}
}
Вот мой тестовый файл:
import { module, inject } from 'angular-mocks';
describe('this is a test', function() {
beforeEach(module('module-name'));
var game;
beforeEach(inject(function(_game_) {
game = new _game_;
}));
it('should be defined', function() {
expect(game).toBeDefined();
});
});
Основная проблема заключается в том, что я сохраняю эту ошибку. Функция inject
от угловых -моков не работает, потому что у меня есть переменная game
, но это не должно быть.
PhantomJS 2.1.1 (Windows 8 0.0.0) should be defined FAILED
forEach
loadModules
createInjector
workFn
{path}/node_modules/karma-jspm/src/adapter.js:61:24
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:1188:34
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:1147:18
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:935:20
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:826:17
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:102:22
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:67:15
Expected undefined to be defined.
D:/{path}/node_modules/karma-jspm/src/adapter.js:61:24
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:1188:34
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:1147:18
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:935:20
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:826:17
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:102:22
[email protected]:/{path}/jspm_packages/system-polyfills.src.js:67:15
Итак, я не могу понять, почему это не работает. Любая подсказка?
Любое решение для этого? Я также сталкиваюсь с тем же вопросом –