सवाल यह है कि, क्या आप यूनिट परीक्षण या एकीकरण परीक्षण कर रहे हैं?
आप इकाई परीक्षण कर रहे हैं, मैं mocks पुराने जमाने तरह से उपयोग करते हुए, एक सेटर का उपयोग कर और इसमें शामिल निर्भरता इंजेक्शन ढांचे के बिना जावा कोड का परीक्षण करने की कोशिश करके सुझाव है। यह अलगाव में आपकी कक्षा का परीक्षण करेगा और बहुत जटिलता को दूर करेगा।
मैं क्या मतलब:
public class Test{
ClassInTest inTest;
MyInterface myInterface;
@Before
public void setup(){
inTest = new ClassInTest();
//or your favorite mocking frameowrk
myInterface = EasyMock.createMock(MyInterface.class);
inTest.setMyInterface(myInterface);
}
@Test
public void testMethod(){
//...mocking test code
}
}
बेशक
, परीक्षण एंड्रॉयड गतिविधियां (और Android के अन्य एक्सटेंशन) अपवाद स्टब्स और अंतिम वर्गों/तरीकों फेंकने की वजह से मुश्किल है। यह वह जगह है जहां Robolectric एंड्रॉइड एपीआई को तत्काल/छायांकन के लिए आसान (और अत्यधिक अनुशंसित) में आता है।
आप एक और तरीका अपनाने चाहते हो सकता है आप एकीकरण परीक्षण कर रहे हैं। निजी तौर पर, मैं एकीकरण परीक्षण के दौरान नकल नहीं करने की कोशिश करता क्योंकि मैं आवेदन में परीक्षण करने की कोशिश करता हूं क्योंकि यह उत्पादन में भाग लेगा। लेकिन, यदि आप वास्तव में नकल करना चाहते हैं, तो आप इकाई परीक्षण के लिए एक समान दृष्टिकोण का उपयोग कर सकते हैं और अपनी जेनरेट गतिविधि गतिविधि को खड़े करने के बाद एक नकली पेश कर सकते हैं। ध्यान देने योग्य मूल्य, आप Robotium जैसे ढांचे का उपयोग करके सीधे हार्डवेयर पर एकीकरण परीक्षण कर सकते हैं।
आपके प्रश्न के लिए, मुझे विशेष रूप से मोक्स इंजेक्शन देने या एप्लिकेशन के इंजेक्शन निर्भरता पेड़ में मोक्स पेश करने के लिए AndroidAnnotations की किसी भी सुविधा से अवगत नहीं है।
स्रोत
2012-05-14 16:14:05
क्या आप एंड्रॉइड एंटरोटेशन द्वारा उत्पन्न अपनी कक्षा या कक्षा का परीक्षण करना चाहते हैं? –
मैं लिखने वाली कक्षा का परीक्षण करना चाहता हूं। मैं कक्षा में मैक्स इंजेक्ट करना चाहता हूं जिसे मैं टेस्ट कोड के लिए लिखता हूं, और उत्पादन के लिए "असली" ऑब्जेक्ट इंजेक्ट करता हूं। – apollodude217