Gau*_*wal 12 unit-testing mocking objective-c ocmock
将OCMock对象传递给函数调用isKindOfClass的方法.但是对于单元测试,返回的值不是模拟类,而是OCMockObject
如果要将 OCMock 对象传递给函数调用 isKindOfClass 的方法,则需要创建部分模拟。以下代码可能对您有帮助。这对我有用。
-(void)testMyTest
{
FirstViewController* masterVC = [[FirstViewController alloc]init];
SecondViewController *second = [[SecondViewController alloc] init];
id master = [OCMockObject partialMockForObject:second];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
[masterVC release];
[second release];
}
Run Code Online (Sandbox Code Playgroud)
FirstViewController 中的 doSomething 方法
-(void)doSomething:(SecondViewController *)detail
{
if ([detail isKindOfClass:[SecondViewController class]])
{
NSString * returnVal = [detail getName:@"PARAM"];
NSLog(@"returnVal %@",returnVal);
}
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是模拟 isKindOfClass 方法,因此测试用例将变为
- (void)testMyTest
{
CalculatorViewController* masterVC = [[CalculatorViewController alloc]init];
id master = [OCMockObject niceMockForClass:[SecondViewController class]];
BOOL ret = YES;
[[[master expect] andReturnValue:OCMOCK_VALUE(ret)] isKindOfClass:[SecondViewController class]];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |