我茉莉花/ AngularJS單元測試的新手。我創建了一個簡單的角度應用程序來添加兩個數字,以便我可以學習如何爲Angular App編寫單元測試。 。基於博客和堆棧溢出答案Angular Doc on unit test is incomplete,我建我的第一次測試,我遇到了「注射器」未定義的錯誤。我正在使用Jasmine框架進行單元測試。
HTML爲什麼我得到「注入」未定義的錯誤使用茉莉花與角時?
<body>
<div ng-controller="additionCtrl">
First Number: <input ng-model="NumberOne"/><br/>
Second Number: <input ng-model="NumberTwo"/>
<button ng-click="add(NumberOne, NumberTwo)">Add</button><br/>
Result: {{Result}}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<script src="Scripts/additionCtrl.js"></script>
</body>
控制器:
function additionCtrl($scope) {
$scope.NumberOne = 0;
$scope.NumberTwo = 0;
$scope.Result = 0;
$scope.add = function (a, b) {
};
}
茉莉花規範文件。
describe("Addition", function() {
var $scope, ctrl;
beforeEach(inject(function ($rootScope, $controller) {
this.scope = $rootScope.$new();
ctrl = $controller('additionCtrl', {
$scope: this.scope
});
}));
it("should add two integer numbers.", inject(function ($controller) {
expect(ctrl.add(2, 3)).toEqual(5);
}));
});
Specrunner.html
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<script type="text/javascript" src="lib/angular-mocks.js"></script>
<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="../App/Scripts/additionCtrl.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/addition.spec.js"></script>
這是一個失敗的測試,一旦測試失敗與預期的結果,那麼我可以修改代碼,使其通過,但我不知何故與面臨的問題角模擬沒有得到注射器。
我看到一個例子,我可以newup控制器,而不是使用注射器,但我想嘗試學習使用注射器,使我建立了更復雜的測試。
我可能會在這裏錯過簡單的東西。請指導我寫任何我可能錯過的文章。
謝謝
這就是我一直在尋找了一段時間:) – Nair 2013-04-11 22:28:18