2015-03-24 6 views
2

Я начинаю с кармой, и я не могу выполнить тестовую работу над своим проектом. Я пытался с этим: http://blog.codeship.com/mocha-js-chai-sinon-frontend-javascript-code-testing-tutorial/ Exemple работает с «HTML-тестирования», но я не могу заставить его работать с начала karma.conf.js (я получил: Выполненный 0 из 0 ERROR)Тестирование с помощью кармы

Вот мой karma.conf.js файл:

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['mocha', 'chai'], 
    files: [ 
     'node_modules/angular/angular.js', 
     'node_modules/angular-mocks/angular-mocks.js', 
     'src/client/api/category/category.model.js' 
     **'test.js'** (edit) 

    ], 
    exclude: [ 
    ], 
    preprocessors: { 
    }, 
    reporters: ['progress'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false 
    }); 
    }; 

Вот файл, я хочу, чтобы тест: (ЦСИ/клиент/API/категория/category.model.js)

angular.module("aq.kiosk.api.category.models", []) 
.factory("CategoryModel", [ 
    function() { 

     var CategoryModel = function (data) { 

      this.id = ""; 
      this.name = ""; 
      this.description = ""; 
      this.mediaUrls = []; 
      this.kind = ""; 
      this.childCount = ""; 
      this.issueCount = ""; 
      this.issues = []; 

      if (angular.isDefined(data)) { 
       this.parse(data); 
      } 
     }; 

     CategoryModel.prototype.parse = function (data) { 
      if (data) { 
       var self = this; 
       angular.forEach(data, function (value, key) { 
        self[key] = value; 
       }); 
      } 
     }; 

     return CategoryModel; 
    } 
]); 

И вот мой тестовый файл:

describe("categorymodel", function() { 

var data = { 
      childCount: "0", 
      description: "", 
      id: "16", 
      issueCount: 0, 
      kind: "", 
      mediaUrls: [], 
      name: "Lorem Ipsum" 
     }; 

beforeEach(module('aq.kiosk.api.category.models')); 
beforeEach(inject(function (_CategoryModel_) { 
CategoryModel = _CategoryModel_; 

}));

describe("constructor", function(){ 
    it('assigns a name', function() { 
     expect(CategoryModel(data)).to.have.property('name', "Lorem Ipsum"); 
    }); 

    }); 

}); 

** EDIT: Большое спасибо, теперь он работает **

+0

Где код, создает модуль? 'angular.module (" aq.kiosk.api.category.models ")' предполагает, что он уже создан. Если вы пытаетесь создать модуль в файле * category.model.js *, тогда синтаксисом будет 'angular.module (« aq.kiosk.api.category.models », [])'. Если модуль создается другим файлом, как этот файл включен? – ivarni

+0

Возможный дубликат [Angular.js: Ошибка при вскрытии, без модуля: myapp] (http://stackoverflow.com/questions/17283291/angular-js-uncaught-error-no-module-myapp) – Jonast92

ответ

0

кажется вам не хватает ссылок на ваш тест спецификации

Вы

files: [ 
    'node_modules/angular/angular.js', 
    'node_modules/angular-mocks/angular-mocks.js', 
    'src/client/api/category/category.model.js' 
], 

Он должен be

files: [ 
    'node_modules/angular/angular.js', 
    'node_modules/angular-mocks/angular-mocks.js', 
    'src/client/api/category/category.model.js', 
    'specs/category.spec.js' 
], 

Также вы должны (за ivarni в комментарии) изменить свой синтаксис

из

angular.module("aq.kiosk.api.category.models") 

в

angular.module("aq.kiosk.api.category.models", []) 

для beforeEach работать

beforeEach(module('aq.kiosk.api.category.models')); 
+0

Это даст тот же ошибка, поскольку она взрывается уже в 'category.model.js', но хороший улов, они оба проблемы должны быть исправлены. – ivarni

+0

Хорошо, я оставлю это на некоторое время - один из многих ответов на этот вопрос :) –

+0

Хорошо, спасибо, я добавил тестовый файл и файл, где создан модуль. И теперь у меня есть эта ошибка: Uncaught ReferenceError: CategoryModel не определен (в тестовом файле). «BeforeEach (модуль (« aq.kiosk.api.category.models »)); предполагается включить его, нет? – Pilipo

Смежные вопросы