2013-04-11 10 views
13

मैं जैस्मीन/कोणीय जेएस इकाई परीक्षण नौसिखिया हूँ। मैंने दो संख्याओं को जोड़ने के लिए एक सरल कोणीय ऐप बनाया ताकि मैं सीख सकूं कि कोणीय ऐप के लिए यूनिट परीक्षण कैसे लिखना है। Angular Doc on unit test is incomplete ब्लॉग और स्टैक ओवरफ़्लो उत्तरों पर आधारित, मैं अपना पहला परीक्षण बनाता हूं और मैं 'इंजेक्टर' अपरिभाषित त्रुटि में चल रहा हूं। मैं इकाई परीक्षण के लिए जैस्मीन ढांचे का उपयोग कर रहा हूँ।
एचटीएमएलकोणीय के साथ जैस्मीन का उपयोग करते समय मुझे अपरिभाषित त्रुटि क्यों 'इंजेक्ट' मिलती है?

<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> 

यह एक असफल परीक्षण है और एक बार परीक्षण अपेक्षित परिणाम के साथ विफल हो तो मैं इसे पारित करने के लिए कोड को संशोधित कर सकते हैं, लेकिन मैं किसी भी तरह के साथ समस्या का सामना करना पड़ रहा कोणीय नकली इंजेक्टर नहीं मिल रहा है।
मैंने एक उदाहरण देखा जहां मैं इंजेक्टर का उपयोग करने के बजाय नियंत्रक को नया कर सकता हूं, लेकिन मैं इंजेक्टर का उपयोग करने के बारे में जानने की कोशिश करना चाहता हूं ताकि मैं अधिक जटिल परीक्षण स्थापित कर सकूं।
मुझे यहां कुछ आसान याद आ रहा है। कृपया मुझे किसी भी लिखने के लिए निर्देशित करें जो मैंने याद किया होगा।
धन्यवाद

उत्तर

11

भविष्य में संदर्भ के लिए यहां (मैं के बारे में पोस्ट करने के लिए था अपने प्रश्न का उत्तर के लिए) एक पूर्ण इकाई परीक्षण सेटअप के साथ एक Plunker

http://plnkr.co/edit/KZGKM6

उपयोगी इस स्थापना परीक्षण परिदृश्य को साझा करने के लिए उपलब्ध हो गया है।

+0

यही वह है जिसे मैं कुछ समय ढूंढ रहा हूं :) – Nair

11

समस्या मिली, यूआरएल मैं कोणीय-नकली तक पहुंचने के लिए उपयोग कर रहा था गलत था। मैं इसे "http://code.angularjs.org/1.0.6/angular-mocks.js" में बदल दिया है और यह भी

<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> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script> 
<script type="text/javascript" src="http://code.angularjs.org/1.0.6/angular-mocks.js"></script> 

अब स्क्रिप्ट टैग का क्रम बदल यह पद्धति पर विफल हो रहा है के रूप में यह माना जाता है।

+0

अंगुलरजेएस 1.2.5 के लिए, कोणीय-mocks.js यहां होस्टेड लाइब्रेरी के रूप में उपलब्ध है https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular-mocks.js, इसलिए, कोई ज़रूरत नहीं है code.angularjs.org वेबसाइट का उपयोग करने के लिए। – danidemi

संबंधित मुद्दे

 संबंधित मुद्दे