के साथ एक विधि के परीक्षण अपवाद I इकाई परीक्षण के लिए नौसिखिया हूँ। मैं अपने आवेदन के लिए यूनिट टेस्ट केस विकसित करने के लिए माईक्लिप्स के साथ टेस्टएनजी का उपयोग कर रहा हूं। ऐसा करने के दौरान मुझे EasyMock के साथ कुछ समस्याएं आ रही हैं। सुरक्षा कोड के लिए मेरा कोड (वर्ग का नाम, विधि नाम और रिटर्न प्रकार बदल दिए गए हैं, लेकिन आपको एक स्पष्ट विचार मिलेगा कि मैं यहां क्या हासिल करने की कोशिश कर रहा हूं)।EasyMock
public MyClass
{
// This is a method in my class which calls a collaborator which I
// want to mock in my test case
public SomeObject findSomething(SomeOtherObject param) throws Exception
{
SomeOtherObject param a = myCollaborator.doSomething(param);
// Do something with the object and then return it
return a;
}
}
अब यहाँ मेरी परीक्षा है। अब मैं वास्तव में अपने परीक्षण मामले में जो हासिल करना चाहता हूं वह यह है कि मैं यह जांचना चाहता हूं कि मेरा कार्य (ढूंढने वाला कुछ) ठीक से कुछ अपवाद फेंकने के मामले में अपवाद फेंकता है। भविष्य में कुछ अन्य डेवलपर हस्ताक्षर बदल सकते हैं (विधि को अपवाद विधि हस्ताक्षर का वास्तव में हिस्सा नहीं है) और मेरी विधि से अपवाद को हटा दें। तो मैं कैसे सुनिश्चित कर सकता हूं कि कोई भी बदलता है?
@Test(dataProvider="mydataProvider", expectedExceptions=Exception.class)
public void MyTest(SomeOtherObject param) throws Exception {
{
EasyMock.expect(myCollaboratorMock.doSomething(param)).andThrow(new Exception());
EasyMock.replay(myCollaboratorMock);
}
मैं अपवाद हो रही है
"java.lang.IllegalArgumentException: पिछले विधि नकली java.lang.Exception फेंक नहीं कर सकते पर बुलाया"
क्या मैं गलत कर रहा हूँ यहाँ? क्या कोई मेरे विशेष परिदृश्य के लिए एक परीक्षण केस लिखने के बारे में कुछ प्रकाश डाल सकता है?
झूठी। [जेनेरिक क्विर्क] (http://java.dzone.com/articles/throwing-undeclared-checked) का उपयोग करके, कहीं भी बहुत से चेक अपवादों को फेंकना संभव है। – jontejj