1

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"

メソッドが呼び出されていないように見えます。しかし、メソッドにブレークポイントを設定すると、メソッドが停止し、その行がアプリケーションによって実行されたことが示され、ログも適切に取得されます。

4

2 に答える 2