2016-01-21 57 views
0

我是茉莉花的新手。我写了一个简单的代码在JS Fiddle中执行,它工作得很好。但是,当我包含茉莉花代码时,它不起作用。我在这里错过了什么吗?用茉莉花测试角度工厂不起作用

var app = angular.module('sortModule', []) 
app.factory('sortFactory', function(){ 
    var sortedColors = [] 
var shouldPush = true; 
return { 
    sortColors: function(colorsArray){ 
     var colorsOrder = [{color:'green'},{color:'yellow'},{color:'blue'},{color:'red'}]  
     for(color in colorsOrder) { 
     for(objColor in colorsArray)  { 
      shouldPush = colorsOrder[color].color === colorsArray[objColor].color ? true : false 
      if(shouldPush) {sortedColors.push(colorsArray[objColor]);} 
     } 
     } 
     return sortedColors; 
    } 
}    
}); 
app.controller('sortController', function($scope,sortFactory){  
    $scope.colorsArray = [{id: '1',color: 'red',code : '#ff0000'},{id: '2',color: 'blue',code : '#0000ff'},{id: '3',color: 'red',code : '#ff0000'},{id: '4',color: 'yellow',code : '#ffff00'},{id: '5',color: 'green',code : '#00ff00'}]; 
    $scope.sortedColors = sortFactory.sortColors($scope.colorsArray) 
}); 

describe('colors', function() { 
    beforeEach(module('sortModule')); 
    it('can get the actual sorted ordered colors list', inject(function(sortFactory) { 
    expect(sortFactory).toBeDefined(); 
}));  
}); 

var NOT_IMPLEMENTED = undefined; 

// load jasmine htmlReporter 
(function() { 
    var env = jasmine.getEnv(); 
    env.addReporter(new jasmine.HtmlReporter()); 
    env.execute(); 
}()); 

实际工作小提琴无茉莉花 http://jsfiddle.net/SyedNizamChennai/kjuemhua/15/

当茉莉花包括

https://jsfiddle.net/SyedNizamChennai/5d4f0hdL/3/ 

回答

0

测试代码中包含新小提琴module功能

beforeEach(module('sortModule')); 

这是功能模块,您需要将其包含为外部资源。

https://jsfiddle.net/SyedNizamChennai/5d4f0hdL/3/

编辑:

工作示例是在这里: http://jsbin.com/lenogujesi/1/edit?html,output

(我用jsbin更好地展示依赖性和它们的顺序)

一些注意事项:

+0

我应该为修复做?未捕获的错误:[$ injector:modulerr]由于以下原因无法实例化模块sortModule: 错误:[$ injector:nomod]模块'sortModule'不可用!您拼错了模块名称或忘记加载模块名称。如果注册模块确保您指定依赖关系作为第二个参数。 – Syed

+0

哦。只包括外部资源。但是,我没有找到任何CDN资源。 – Syed

+0

例如http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-mocks.js请注意,角度和角度模拟的版本应该相同。您可以更改网址中的版本号 – milanlempera