[英]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更好地显示了依赖关系及其顺序)
一些注意事项:
如果已加载茉莉花色,则角度模拟将函数模拟和其他函数公开为全局(请参阅https://docs.angularjs.org/api/ngMock#function ),否则函数未定义
角度和角度模拟应具有相同的版本
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.