मैं कोड के लिए परीक्षण लिखने की कोशिश कर रहा हूं जिसे मैंने लिखा नहीं है जो यूई-राउटर का उपयोग करता है।कोणीय जेएस-यूनिट एक अज्ञात नियंत्रक का परीक्षण
मैं अपने परीक्षण में एक नियंत्रक इंजेक्षन के लिए एक रास्ता को समझ नहीं सकता क्योंकि यह एक राज्य अन्य नियंत्रक में कॉन्फिगर भीतर इनलाइन और गुमनाम लिखा है:
$scope.deleteSomething = function() {
$modal.open(
templateUrl: '/delete-item-modal.html',
controller: ['$scope', '$modalInstance', 'someService',
function($scope, $modalInstance, someService) {
....
}
],
resolve: {
...
}
});
};
नियंत्रक controller: 'TheController'
मैं की तरह कुछ नामित किया गया था, तो अपने परीक्षण में इस तरह करने से यह इंजेक्शन लगाने के कोई समस्या नहीं है जाएगा:
beforeEach(inject(function($controller) {
$controller('TheController', {/*dependancies to be injected*/});
}));
लेकिन चूंकि नियंत्रक अनाम है, मैं इसे करने के लिए एक संभाल की जरूरत नहीं है और यह कैसे उपयोग करने के लिए समझ नहीं कर सकते हैं।
तो, आप इस सवाल का जवाब है: एक नामित नियंत्रक में नियंत्रक refactor, यह परीक्षण योग्य बनाने के लिए। –
@ जेबी निज़ेट हां, लेकिन मैं इससे बचने की कोशिश कर रहा हूं क्योंकि यह मेरा कोड नहीं है और इसके बजाय इसे दोबारा नहीं बदला जाएगा। यह एक अंतिम उपाय होगा। – Noam
मुझे पता है कि यह आपकी समस्या का समाधान नहीं करता है, लेकिन यदि यह आपका कोड नहीं है, और आपको इसे संशोधित करने की अनुमति नहीं है, तो आपको इसे यूनिट-टेस्ट नहीं करना चाहिए। कोड लिखने वाले डेवलपर को इसका परीक्षण करना चाहिए। –