我有一个协议来编写OCUnit测试Caes
@interface ClassDeclaration: NSObject{
... Varables
}
... Methods
// Protocol declartion!
@end
@protocol Message <NSObject>
-(BOOL) isValid;
@end
实现方法是在另一个名为'NewClassName'的类中编写的
-(BOOL) isValid{
return (self.message != nil);
}
现在!
我正在编写协议方法的测试用例!
-(void)testIsValid{
ClassDeclaration *obj = [[ClassDeclaration alloc] init];
SEL methodName = @selector(isValid);
BOOL test = [obj respondsToSelector:methodName];
}
我的问题是我能为协议方法编写测试用例吗?
我正在尝试为测试用例调用方法SEL methodName = @selector(isValid);
,这个方法不是调用我不知道为什么?任何人都可以让我知道协议方法将在运行时调用,以便如何通过单元测试调用此方法?
@All提前致谢!
答案 0 :(得分:0)
自从提出这个问题以来已经有一段时间了,但如果有人在这个问题上遇到麻烦,我会有答案。
查看OCMock框架。有了它,您可以模拟对象和协议等。您可以找到框架here,并查看功能here。
OCMock有一个类方法,可用于为协议创建模拟:
+mockForProtocol:
与所描述的ocmock.org/features一样,您可以使用以下命令创建模拟
id aMock = [OCMockObject mockForProtocol:@protocol(SomeProtocol)]
还有一个描述:
创建一个模拟对象,可以将其用作实现SomeProtocol的对象的实例。
这个话题。要了解OCMock的用法,您可以参考以下帖子:
除了这些链接,您还可以获取发布的链接here背后的信息。
快乐的嘲笑! Tomte