INテストクラス
-(void)testMyTest
{
MasterViewController* masterVC = [[MasterViewController alloc]init];//[OCMockObject mockForClass:[MasterViewController class]];
id master = [OCMockObject mockForClass:[DetailViewController class]];
[[master expect] getStringVal:@"PARAM"];
[masterVC doSomething];
[master verify];
}
in detailViewController
-(NSString*)getStringVal:(NSString*)param
{
NSString *returnParam = [NSString stringWithFormat:@"%@-String",param];
return returnParam;
}
IN マスター ビュー コントローラー
-(void)doSomething
{
DetailViewController *detail = [[DetailViewController alloc]init];
[detail getStringVal:@"PARAM"];
NSString * returnVal = [detail getStringVal:@"PARAM2"];
NSLog(@"returnVal %@",returnVal);
NSLog(@"doSomething");
}
テストを実行すると、次のエラーが表示されます。
doSomething Unknown.m:0: エラー: -[iOS5ExampleTests testMyTest]: OCMockObject[DetailViewController]: 予期されるメソッドが呼び出されませんでした: getStringVal:@"PARAM"
メソッドが呼び出されていないように見えます。しかし、メソッドにブレークポイントを設定すると、メソッドが停止し、その行がアプリケーションによって実行されたことが示され、ログも適切に取得されます。