मैं this answer से निम्नलिखित दो सुझावों डीबगिंग के लिए उपयोगी पाया:
- Grapher की परिकल्पना करती इंजेक्टर। यदि आपका कस्टम प्रदाता HasDependencies लागू करता है, तो यह इस ग्राफ को बढ़ा सकता है।
- Binder.skipSources() आपको उन एक्सटेंशन को लिखने देता है जिनके त्रुटि संदेश लाइन नंबरों को सही तरीके से ट्रैक करते हैं। यदि आप सामान्य बाध्यकारी सहायक तरीकों लिखने और Guice केवल सामान्य सहायक विधि की लाइन संख्या बताता है, लेकिन आप (सबसे अधिक संभावना) वास्तव में फोन करने वाले एक स्तर ऊपर के बजाय ढेर के लाइन नंबर चाहते
Binder.skipSources() उपयोगी है।
मैं एंड्रॉइड के लिए विकास कर रहा हूं, इसलिए जब तक मैं डिवाइस या सिम्युलेटर पर अपने परिवर्तनों के नतीजे देखता हूं तब तक बिल्डिंग समय मेरी धीमी गति से संशोधित हो सकता है। इसलिए मैंने यूनिट परीक्षण विकसित किए हैं जो मेजबान पीसी पर सीधे गिइस बाइंडिंग को सत्यापित करेंगे। यहां तक कि यदि आप एंड्रॉइड के लिए विकास नहीं कर रहे हैं, तो भी निम्नानुसार गिइस बाध्यकारी इकाई परीक्षण लिखना सहायक हो सकता है। अभी, मेरा कुछ इस तरह दिखाई (स्काला में यहाँ - जावा समान लगेगा)
class ProviderTest {
var injector : Injector = null
@Before
def setUp() {
injector = Guice.createInjector(
new BindModule1(),
new BindModule2(),
new BindGlobals()
)
}
@After
def tearDown() {
}
@Test def InjectedClass1WasBound() {
val provider = injector.getProvider(classOf[InjectedClass1])
}
@Test def InjectedClass2WasBound() {
val provider = injector.getProvider(classOf[InjectedClass2])
}
}
मैं सबसे गहरा बाध्य वर्ग से शुरू परीक्षण लिखें। यानी, अगर सी को बी में इंजेक्शन दिया जाता है, जिसे ए में इंजेक्शन दिया जाता है, तो मैं सी पर परीक्षण करना शुरू कर दूंगा। यदि इकाई परीक्षण सी की बाध्यकारी विफल हो जाती है, तो मैं सफल होने के बाध्य होने तक इंजेक्शन वाले फ़ील्ड को तब तक टिप्पणी करना शुरू कर दूंगा। फिर मैं इस प्रक्रिया को दोहराने इंजेक्शन पदानुक्रम को अपना रास्ता बढ़ाता हूं।
बेशक यदि आप टेस्ट-संचालित विकास का पालन करते हैं, और अपने सूट में पूर्ण कवरेज गिइस-बाध्यकारी परीक्षण शामिल करना सुनिश्चित करते हैं, तो आप बाध्यकारी तोड़ने के तुरंत बाद इन त्रुटियों का पता लगाएंगे।
स्रोत
2012-01-10 20:10:28
ग्राफ वास्तव में बहुत उपयोगी हैं। आपको बस शैली = आविष्कार बग – wuppi
के आसपास काम करना होगा, क्या आप इस जावा को टैग कर सकते हैं, इसलिए हमें कोड-रंग मिल रहा है? – wuppi