AngularJS单元测试与业力和茉莉

时间:2016-12-08 02:32:55

标签: angularjs unit-testing karma-jasmine

我正在学习AngularJS,当我想进行单元测试时。我犯了一个我无法解决的错误。

这是错误:

enter image description here

AngularJS版本:v1.3.11 业力版:v0.12.28

karma.conf.js

    module.exports = function(config) {
         config.set({
             basePath: '',

             frameworks: ['jasmine'],


             files: [
                 'angular.min.js',
                 'angular-mocks.js',
                 'controller.js',
                 'simpleSpec.js',
                 'controllerSpec.js'
             ],

             exclude: [],

             port: 8080,

             logLevel: config.LOG_INFO,

             autoWatch: true,

             browsers: ['Chrome'],

             singleRun: false
           });
       };

controller.js

    angular.module('notesApp', [])
         .controller('ListCtrl', [function() {

         var self = this;
         self.items = [
            {id: 1, label: 'First', done: true},
            {id: 2, label: 'Second', done: false}
         ];

        self.getDoneClass = function(item) {
           return {
             finished: item.done,
             unfinished: !item.done
           };
        };
   }]);

controllerSpec.js

   describe('Controller: ListCtrl', function() {         
       beforeEach(module('notesApp'));

       var ctrl;

       beforeEach(inject(function($controller) {
             ctrl = $controller('ListCtrl');
       }));

       it('should have items available on load', function() {
             expect(ctrl.items).toEqual([
                {id: 1, label: 'First', done: true},
                {id: 2, label: 'Second', done: false}
             ]);
       });

      it('should have highlight items based on state', function() {
             var item = {id: 1, label: 'First', done: true};

             var actualClass = ctrl.getDoneClass(item);
             expect(actualClass.finished).toBeTruthy();
             expect(actualClass.unfinished).toBeFalsy();

             item.done = false;
             actualClass = ctrl.getDoneClass(item);
             expect(actualClass.finished).toBeFalsy();
             expect(actualClass.unfinished).toBeTruthy();
       });

    });

0 个答案:

没有答案