在目标 c 中创建简单的 OCMock 单元测试
Posted
技术标签:
【中文标题】在目标 c 中创建简单的 OCMock 单元测试【英文标题】:Create simple OCMock unit test in objective c 【发布时间】:2013-01-30 08:39:40 【问题描述】:我为我的静态类库配置了 OCMock,并创建了这样的简单方法。
#import "iosExample.h"
@implementation IOSExample
-(NSString *)MyTest
return @"Nuwanga";
-(int *)MyAge
int a=5;
int b=5;
int product=a*b;
return product;
@end
在 OCUnit 测试中,我创建了这个方法,如下所示。
-(void)testMyAge
int a=5;
int b=5;
int product=a*b;
STAssertTrue((product > 0), @"The Product was less than zero");
我的问题是如何在 OCMock 单元测试中创建返回类型测试方法???
谢谢
【问题讨论】:
阅读OCMock的文档标签。 我不明白你的问题。 OCMock 用于“模拟”其他对象,替换方法以便编写没有外部依赖的单元测试。你想模拟一些东西还是只写一个普通的单元测试? 另外,该代码很容易模拟。没有要模拟的类,只有一个方法。 NSObject 类中的这个类。我需要通过对类使用 Mock 对象来进行单元测试。我如何正确使用此方法 :: id mock1=[OCMockObject mockForClass:] 你想在这里模拟什么? 【参考方案1】:也许你想做类似的事情
-(void)testMyAge
IOSExample *exampleUndertest = [[IOSExample alloc] init];
STAssertTrue(([exampleUndertest MyAge] > 0), @"The Product was less than zero");
问候, 昆汀
【讨论】:
【参考方案2】:对于 TDD,您可以如下修改代码
-(int *)MyAge:(int)inA and:(int)inB
int product=inA*inB;
return product;
而你的测试用例会变成这样
-(void)testMyAge
int product=[sut MyAge:5 and:5];
STAssertTrue((product > 0), @"The Product was less than zero");
我认为在这种情况下不需要模拟。
【讨论】:
以上是关于在目标 c 中创建简单的 OCMock 单元测试的主要内容,如果未能解决你的问题,请参考以下文章