У меня возникли проблемы с доступом к моим услугам и фильтрам в модульных тестах (я еще не пробовал директивы). Ранее я писал модульные тесты, но по мере того как я перешел к конфигурации наших сборников, у меня возникли проблемы с доступом к нашим новым сервисам для написания модульных тестов. Я постоянно получаю TypeError: null is not an object (evaluating 'currentSpec.$modules') in...
. Я сделал некоторое чтение, и похоже, что это может быть связано с пакетами узлов, которые я использую. Мне было интересно, может ли большее сообщество убедиться в правильности этих конфигураций. Я сократил файлы ниже.Услуги по тестированию модулей в угловых условиях с жасмином, кармой и ng-Mock
С текущей конфигурацией это ошибка.
package.json
"devDependencies": {
"angular": "1.5.7",
"angular-mocks": "1.5.7",
"jasmine": "2.4.1",
"jasmine-core": "2.4.1",
"karma-browserify": "5.1.0",
"karma-chrome-launcher": "1.0.1",
"karma-jasmine": "1.0.2",
"karma-nyan-reporter": "0.2.4",
"karma-phantomjs2-launcher": "0.5.0",
"phantomjs2": "2.2.0"
}
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['browserify', 'jasmine'],
files: [
'app/main.js',
'app/modules/**/*.spec.js',
'app/shared/**/**/*.spec.js'
],
preprocessors: {
'app/main.js': ['browserify'],
'app/modules/index.js': ['browserify'],
'app/shared/index.js': ['browserify'],
'app/modules/**/*.spec.js': ['browserify'],
'app/shared/**/**/*.spec.js': ['browserify']
},
})
}
service.spec.js
describe('Unit: Services', function() {
require('angular-mocks/ngMock');
var APIHelper;
beforeEach(function() {
angular.mock.module('app.common.services');
});
beforeEach(inject(function(apiHelperService) {
APIHelper = apiHelperService; //injection is what's breaking
}));
it('should exist', function() {
expect(APIHelper).toBeDefined();
});
});
че e сервисы и спецификации загружаются и в правильном порядке. У этой службы нет зависимостей. Я предполагаю, что получаю те же самые ошибки, когда мне нужно вводить зависимостей между службами, но если я смогу понять, какие инъекции выдумали, я могу приложить нужные услуги, поскольку они мне нужны.
// This worked in a controller
angular.mock.inject(function GetDependencies(service) {
service = service;
});
Благодарим вас за то, что нашли время, чтобы просмотреть это и потенциально ответить на вопрос.
-W
эй чувак, можете ли вы принять его как ответ, чтобы этот вопрос был закрыт – dreamweiver