मैं जॉन पिताजी कोणीय शैली का उपयोग मार्गदर्शन मेरी नियंत्रक लगता है:जैस्मीन के साथ जॉन पापा vm.model इकाई परीक्षण का परीक्षण कैसे करें?
describe('Controller: testController', function() {
beforeEach(module('myApp'));
var testController;
beforeEach(inject(function ($controller) {
scope = {};
testController = $controller('testController', {
});
}));
it('should have vm.model defined and testController.vm.model is equal to controllerAs vm test', function() {
expect(testController.vm).toBeDefined();
expect(testController.vm.model).toBeDefined();
expect(testController.vm.model.name).toEqual("controllerAs vm test");
});
});
परिणाम::
टेस्ट
function testController() {
var vm = this;
vm.model = { name: "controllerAs vm test" };
}
मेरे परीक्षण कोड की तरह दिखता है:
शैली John papa style controller style guide निम्नलिखित असफल: परिणाम संदेश: परिभाषित होने के लिए अपरिभाषित अपेक्षित। स्टैक
तो मेरा सवाल यह है कि हम vm.model और अन्य चरों का परीक्षण कैसे कर सकते हैं? मैं संबंधी दिशा-निर्देश में उचित मार्गदर्शन लाइन नहीं मिला है: controllers
फ़ंक्शन के रूप में आपका उत्तर ठीक दिखता है लेकिन यहां मेरी समस्या तब होती है जब मैं नियंत्रक उदाहरण प्रारंभ करता हूं: testController = $ नियंत्रक ('testController', { }); तो testController.vm काम करना चाहिए लेकिन काम नहीं करता है।तो मेरा सवाल उन लोगों के लिए है जिन्होंने कोणीय जॉन पापा के नियंत्रक के साथ वीएम सिंटैक्स के रूप में काम किया है और जैस्मीन के साथ परीक्षण किया है। –
@UtpalKumarDas - हुड '$ नियंत्रक 'के तहत बस' नया()' कॉल कर रहा है, इसलिए यह वैसे ही काम करता है। – Josh
@UtpalKumarDas - मैं कई वर्षों से कोणीय के साथ काम कर रहा हूं, और जैस्मीन के साथ बहुत सारे परीक्षण किए हैं। मैं यह बताने की कोशिश कर रहा हूं कि यह एक कोणीय चीज नहीं है, बल्कि एक जावास्क्रिप्ट है। 'vm' नियंत्रक पर एक संपत्ति नहीं है ... यह एक चर है जो फ़ंक्शन स्कोप द्वारा बंद है। इसलिए इस तरह इस्तेमाल होने पर यह आपके नियंत्रक पर ** कभी ** मौजूद नहीं होगा। जेएस कैसे काम करता है '$ नियंत्रक' नहीं बदलता है। – Josh