如何断言你的AppDelegate有一个特定的ocunit协议?

时间:2012-03-07 13:05:48

标签: objective-c ocunit

我正在尝试验证我的AppDelegate对象是否具有特定协议

@interface AppDelegate : UIResponder <UIApplicationDelegate>

目前,下面的测试增加了一些值,但是是否存在一个自定义断言,可以让我验证特定对象有哪些协议?

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

2 个答案:

答案 0 :(得分:2)

如评论所示 - 这就是诀窍: [someObject conformsToProtocol:@protocol(WhatEver)];

答案 1 :(得分:0)

@Jim提到了另一个问题我得到了答案。我只是添加了一个断言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");
}