错误:Angularjs工厂未在Jasmine规范中定义

时间:2017-08-14 11:15:23

标签: javascript angularjs jasmine factory

我正在使用Jasmine在我的角度应用程序上进行测试。 我正在尝试测试一个名为calculateAverageAge的函数,该函数在名为sharedFactory的角度工厂中定义,它告诉我sharedFactory未定义。

ReferenceError: sharedFactory is not defined

我已经包含了所有的src文件。有什么我想念的吗? 注意:它在实际的应用程序中工作,但不在规范中。感谢

Jasmine suite

describe("SharedFactory", function () { 

    it("should calcuate the average age from an array of ages", function () { 
        var ageArray = [1,6,9,23,33,62,63,4,5];
        var averageAge =  sharedFactory.calculateAverageAge(ageArray);


        expect(averageAge).not.toBeLessThan(1); 
        expect(averageAge).not.toBeGreaterThan(120); 

    }); 


});

SharedFactory.js

agesApp.factory('sharedFactory', function($http, loginFactory) {

    return {
            calculateAverageAge: function(ageArray){
                var sumOfAges = 0;
                var numberofAges = ageArray.length;
                ageArray.forEach(function(age) {
                    sumOfAges += age;

                    }); 
                var averageAge = sumOfAges/numberofAges;
                return averageAge;
            }


    };
});

SpecRunner.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jasmine Spec Runner v2.6.1</title>

<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.6.1/jasmine_favicon.png">
<link rel="stylesheet" href="lib/jasmine-2.6.1/jasmine.css">

<script src="lib/jasmine-2.6.1/jasmine.js"></script>
<script src="lib/jasmine-2.6.1/jasmine-html.js"></script>
<script src="lib/jasmine-2.6.1/boot.js"></script>
<script src="../js/angular.min.js"></script>
<script src="../js/angular-route.min.js"></script>
<script src="../js/angular-touch.min.js"></script>


<!-- include source files here... -->
<script src="../modules/agesApp.js"></script>
<script src="../factories/loginFactory.js"></script>
<script src="../factories/sharedFactory.js"></script>

<!-- include spec files here... -->
<script src="spec/SharedFactorySpec.js"></script>
</head>

<body>
</body>
</html>

0 个答案:

没有答案