मैं वर्तमान में पहलू का उपयोग कर कुछ निगरानी उपकरण पर काम कर रहा हूं। चूंकि यह उपकरण तकनीकी स्वतंत्र होना चाहिए (जहां तक संभव हो), मैं इंजेक्शन के लिए वसंत का उपयोग नहीं कर रहा हूं। लेकिन मैं चाहता हूं कि मेरे पहलू यूनिट-टेस्ट हों।एक पहलू को नकल करने के लिए कैसे करें
पहलू उदाहरण:
@Aspect
public class ClassLoadAspect {
private Repository repository;
public ClassLoadAspect() {
repository = OwlApiRepository.getInstance();
}
@After("anyStaticInitialization()")
public void processStaticInitilization(JoinPoint jp) {
Class type = jp.getSourceLocation().getWithinType();
if (type.isInterface()) {
repository.storeInterfaceInitialization(type);
} else if (type.isEnum()) {
repository.storeEnumInitialization(type);
} else {
repository.storeClassInitialization(type);
}
}
@Pointcut("staticinitialization(*) && !within(cz.cvut.kbss.odra..*)")
public void anyStaticInitialization() {
}
public Repository getRepository() {
return repository;
}
public void setRepository(Repository repository) {
this.repository = repository;
}
}
हालांकि, मैं वास्तव में न कैसे इकाई परीक्षण (भंडार क्षेत्र मज़ाक उड़ाया जाना चाहिए (mockito का उपयोग)) के निर्माण के लिए पता है,, लेकिन मैं नियंत्रण में पहलू निर्माण की जरूरत नहीं है, इसलिए मैं निर्भरता मैन्युअल रूप से सेट नहीं कर सकता। उदाहरण प्राप्त करने के लिए मुझे क्या कहना चाहिए? या कुछ अन्य परिदृश्य है कि पहलू पहलुओं को यूनिट-टेस्ट कैसे करें।
धन्यवाद।
मुझे अपने समाधान में पसंद नहीं है: स्थिर विधि के वैश्विक प्रतिस्थापन यह मुश्किल परीक्षण करने के लिए बनाता है - मैं भंडार नकली मैन्युअल रूप से रीसेट चाहिए (बजाय एक नया एक स्थापित करने की)। मुझे नकली रिपोजिटरी ऑब्जेक्ट तक पहुंच प्राप्त करने के लिए एक नकली धारक को घुसपैठ करना पड़ा। तीसरी बात यह है कि मैं नकली सेट करने के लिए बाइटकोड से गुस्सा नहीं करना चाहता, मुझे सच में लगता है कि यह भाषा के मानक माध्यमों द्वारा किया जाना है (यदि यह संभव नहीं है, तो यह इम्हो पहलू में कमी दिखाता है डिज़ाइन)। लेकिन कोड से, आपका समाधान हो सकता है (कम से कम धारक की आवश्यकता नहीं है) :-)। – malejpavouk
प्वाइंट लिया गया, बक्षीस तुम्हारा है। धन्यवाद :-) – malejpavouk
शोर के लिए खेद है। मैंने टिप्पणियों को मेरे उत्तर में जोड़ने का फैसला किया है क्योंकि टिप्पणियों के लिए उपलब्ध पात्रों की संख्या बहुत छोटी थी। लेकिन मुझे बक्षीस के साथ देने के लिए वैसे भी धन्यवाद। :) – kriegaex