Хобрук: Ваш путь к мастерству в программировании

Интеграция Zurb Foundation-Apps с Karma + Jasmine

Я новичок в Foundation и angular, но мне удалось настроить проект Foundation-Apps с помощью Foundation-Cli; однако я не могу заставить работать тестовый бегун. Я использую Karma с инфраструктурой тестирования Jasmine, но мне не удалось загрузить угловой модуль. Любая помощь будет оценена по достоинству! Приложение работает нормально, но не работает загрузка ресурсов для проверки с помощью кармы.

Ошибка, которую я получаю:

ReferenceError. module is not defined...

Я предполагаю, что он не может загрузить «приложение», которое является моим угловым приложением. Любая помощь приветствуется.

структура каталогов:

/root
  /bower_components
  /build
    /assets
    /components
    /templates
    index.html
  /client
    /assets
    /templates
    index.html
  /node_modules
    ... local packages ...
  /test
  bower.json
  gulpfile.js
  karma.conf.js
  package.json
  test-main.js

приложение.js:

(function () {
    'use strict';

    angular.module('application', [
    'ui.router',
    'ngAnimate',

    //foundation
    'foundation',
    'foundation.dynamicRouting',
    'foundation.dynamicRouting.animations'
    ])
        .config(config)
        .run(run)

    config.$inject = ['$urlRouterProvider', '$locationProvider'];

    function config($urlProvider, $locationProvider) {
        $urlProvider.otherwise('/');

        $locationProvider.html5Mode({
            enabled: false,
            requireBase: false
        });

        $locationProvider.hashPrefix('!');
    }

    function run() {
        FastClick.attach(document.body);
    }

})();

карма.конф:

// Karma configuration
// Generated on Sun Mar 08 2015 18:16:11 GMT-0500 (Central Daylight Time)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: './',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
        'bower_components/angular/angular.js',
       'bower_components/angular-ui-router/release/angular-ui-router.min.js',
        'bower_components/angular-animate/angular-animate.min.js',
        'bower_components/angular-mocks/angular-mocks.js',
        'build/assets/js/app.js',
        'client/assets/services/*.js',
        'test/unit/*.js'        
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false
  });
};

Моя демонстрационная спецификация:

'use strict';

describe('Sample Test',function(){

   it('should know that 2+2=4',function(){
       var simpleMath = 2+2;
        expect(simpleMath).toBe(4)
   })

});

describe("EventService", function(){

    beforeEach(angular.mock.module("application"));

    var service;

    beforeEach(inject(function(eventservice){
       service = eventservice;
    }));

    describe("Events", function(){
        it("should return an array of items", function(){
            expect(service.events()).toBeDefined();
        });
    });
});

Ответы:


1

У меня была такая же проблема, и я решил ее, сославшись на файлы Foundation.js и route.js в каталоге сборки до app.js. Кроме того, angular.js следует загружать как часть загружаемого Foundation.js, поэтому вам не нужно загружать angular.js напрямую.

Тем не менее, как только он смог использовать модуль, мое приложение модуля не было загружено. Вы решили это после этого поста?

21.04.2015
Новые материалы

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

Расистский и сексистский робот, обученный в Интернете
Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

Управление состоянием в микрофронтендах
Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..

Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

Структуры данных в C ++ - Часть 1
Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..