2012-03-07 2 views
1

Я пытаюсь проверить, что мой объект AppDelegate имеет специальный протоколКак утверждать, что ваш AppDelegate имеет специальный протокол с ocunit?

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

В настоящее время испытания ниже добавляет некоторую ценность, но делает заказ утверждают существование, что позволило бы мне, чтобы проверить, какие протоколы конкретный объект имеет?

- (void)testAppDelegateIsUiResponder 
{ 
    AppDelegate *appDelegate = [[AppDelegate alloc] init]; 
    STAssertTrue([appDelegate isKindOfClass:[UIResponder class]], @"AppDelegate is not UIResponder"); 
} 
+0

возможно дубликат [Objective-C Runtime:? Лучший способ проверить, если класс соответствует протоколу] (http://stackoverflow.com/ вопросы/3436257/object-c-runtime-best-way-to-check-if-class-compatible-to-protocol) – Jim

+0

честный комментарий - в любом случае, мой окончательный тест (может быть закрыт независимо) –

ответ

2

Как указано комментарием - это делает трюк: [SomeObject conformsToProtocol: @protocol (то)];

0

@Jim упомянутый другой вопрос, который получил ответ, который я искал. Я просто добавил утверждать, истинное утверждение, чтобы получить мое утверждение потерпеть неудачу, как и ожидалось

- (void)testAppDelegateIsUiResponder 
{ 
    AppDelegate *appDelegate = [[AppDelegate alloc] init]; 
    STAssertTrue([appDelegate isKindOfClass:[UIResponder class]], @"AppDelegate is not UIResponder"); 
} 

- (void)testAppDelegateHasUiApplicationDelegateProtocol 
{ 
    AppDelegate *appDelegate = [[AppDelegate alloc] init]; 
    STAssertTrue([appDelegate conformsToProtocol:@protocol(UIApplicationDelegate)], @"Protocol Missing"); 
}