मैं कैसे कोड है कि isKindOfClass कॉल के साथ OCMock वस्तुओं का उपयोग कर सकते हैं?

वोट
7

मैं OCMock के साथ कुछ कोड का परीक्षण करना चाहते हैं।

कोड के धर्मशाला बुला रहे हैं [NSObject isKindOfClass]नकली वस्तु मैं कोड के लिए उपलब्ध कराने के कर रहा हूँ, तो जैसे पर:

if ([object isKindOfClass:[FancyClass class]]) { ...}

हालांकि, जब मैं इस तरह बनाई गई एक OCMockObject आधारित नकली प्रदान करते हैं:

mock = [OCMockObject mockForClass:[FancyClass class]];

ऐसा लगता है कि इसे पारित नहीं करता isKindOfClassपरीक्षण।

कोई सुझाव?

29/01/2009 को 02:17
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
7

सामान्य नियम यह है कि यदि आप कॉल कर रहे है isKindOfClass:और आप plist वर्गों (जैसे, NSString या NSNumber) में से एक उत्तीर्ण नहीं कर रहे हैं, आप यह गलत कर रहे हैं।

विधि पर जो वर्ग अपनी तर्क है निर्भर करता है दो या अधिक अलग अलग बातें करता है, यह कई तरीकों में उखड़ना, और प्रत्येक विधि का परीक्षण करें।

विधि केवल एक बात करता है, लेकिन वस्तु अलग तरह से निर्भर करता है कि किस वर्ग पर है, तो साथ बातचीत करने की है, तो:

  1. एक प्रोटोकॉल करें। (Obj सी में प्रोटोकॉल जैसे कि जावा कुछ अन्य OO भाषाओं में "इंटरफेस" कहा जाता है।)
  2. कई वर्गों सभी प्रोटोकॉल के अनुरूप सुनिश्चित करें। यदि आवश्यक हो, बाहर से आवश्यक तरीकों को जोड़ने के लिए श्रेणियों का उपयोग।
  3. वर्तमान के स्थान पर प्रोटोकॉल के अनुरूपता के लिए परीक्षण जांच के तहत विधि बनाएं, isKindOfClass:जांच।
  4. परीक्षण के अंतर्गत विधि प्रोटोकॉल में तरीकों का उपयोग करें।
29/01/2009 को 03:20
का स्रोत उपयोगकर्ता

वोट
2

व्हाट अबाउट:

    [[[mock stub] andReturnValue:OCMOCK_VALUE((BOOL) {YES})] isKindOfClass:[FancyClass class]];
06/05/2013 को 19:37
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more