繁体   English   中英

使用Jasmine测试Angular Factory无法正常工作

[英]Testing Angular Factory with Jasmine is not working

我是茉莉的新手。 我写了一个简单的代码在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/

测试代码包含module功能

beforeEach(module('sortModule'));

这是ngMock模块的功能,您需要将其作为外部资源包括在内。

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

编辑:

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

(我使用jsbin更好地显示了依赖关系及其顺序)

一些注意事项:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM