Как утверждать, что у вашего AppDelegate есть определенный протокол с ocunit? - PullRequest
1 голос
/ 07 марта 2012

Я пытаюсь проверить, что мой объект AppDelegate имеет определенный протокол

@interface AppDelegate : UIResponder <UIApplicationDelegate>

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

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

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

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

0 голосов
/ 07 марта 2012

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

- (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");
}
...