मैं कोणीय 1.5 में एक घटक के लिए एक इकाई परीक्षण लिखने की कोशिश कर रहा हूं। मैं उस घटक और उसके डोम नोड्स का परीक्षण करना चाहता हूं। इस घटक में एक बाल घटक है जो काफी जटिल है।बाल घटकों को अनदेखा करते समय कोणीय 1.5 इकाई परीक्षण घटक
मेरा लक्ष्य इकाई घटक को संकलित किए बिना बाहरी घटक का परीक्षण करना है।
चूंकि मैं डीओएम का परीक्षण करना चाहता हूं, इसलिए इस परीक्षण के लिए $ घटक नियंत्रक का उपयोग करने के लिए पर्याप्त नहीं है।
यहाँ मैं प्राप्त करना चाहते हैं की एक छोटी सी उदाहरण है:
घटक कोड:
it('my-component should render username', function() {
var template = '<my-component username="username"></my-component>',
element,
scope,
date;
scope = $rootScope.$new();
scope.username = 'John';
element = $compile(template)(scope);
scope.$digest();
username = element.find('span');
expect(username.text()).to.be.equal('John');
});
मेरी कॉम्प्लेक्स घटक: मेरे घटक के लिए
angular.module('app').component('myComponent', {
bindings: {
username: '<',
},
template: `
<span>{{ $ctrl.username }}</span>
<my-complex-component />
`
controller: function() {}
});
यूनिट परीक्षण तत्काल नहीं होना चाहिए। इसे टेम्पलेट में प्रतिरोध करना चाहिए जैसा कि यह है। यूनिट टेस्ट में तत्व बनाना
<span>John</span>
<my-complex-component />
क्या ऐसा करने का कोई तरीका है?
जैसा कि मुझे पता है कि यह वास्तव में काम करता है कि आप कैसे उम्मीद करते हैं। जब आप अपने घटक को संकलित करते हैं तो यह आंतरिक घटकों को संकलित नहीं करता है। बस 'console.log (तत्व)' देखें। –
दुर्भाग्यवश, मेरा घटक और मेरा-जटिल घटक दोनों मॉड्यूल ऐप में स्थित हैं। चूंकि मुझे मॉड्यूल को नकल करने के लिए angular.mock.module ('app') को कॉल करना है, इसलिए यह दोनों घटकों को लोड करता है और यह मेरे जटिल-घटक को संकलित करने का प्रयास करता है। –
आप 'मेरा-जटिल-घटक' को आजमा सकते हैं और नकल कर सकते हैं। [यह जवाब] देखें (http://stackoverflow.com/questions/17533052/how-do-you-mock-directives-to-enable-unit-testing-of-higher-level-directive#answer-21923462) मॉकिंग पर एक निर्देश लेकिन [$ compileProvider.component] (https://docs.angularjs.org/api/ng/provider/$compileProvider#component) का उपयोग करें – user2718281