2016-01-21 101 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