我正在尝试验证我的AppDelegate对象是否具有特定协议
@interface AppDelegate : UIResponder <UIApplicationDelegate>
目前,下面的测试增加了一些值,但是是否存在一个自定义断言,可以让我验证特定对象有哪些协议?
- (void)testAppDelegateIsUiResponder
{
AppDelegate *appDelegate = [[AppDelegate alloc] init];
STAssertTrue([appDelegate isKindOfClass:[UIResponder class]], @"AppDelegate is not UIResponder");
}
答案 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");
}