我有方法:
+(void)deleteImage:(KRImage*)image usingFileManager:(NSFileManager*)fileManager
{
if(!fileManager)
[[self class] deleteImage:image usingFileManager:[NSFileManager defaultManager]];
else
[fileManager removeItemAtPath:image.filepath error:NULL];
}
我想测试如果我使用nil作为参数,将使用defaultManager。我尝试使用代码:
-(void)testThatDefaultManagerWillBeUsedWhenNilIsPassed
{
image = [KRImage imageWithURLString:@"imageToDelete" inManagedObjectContext:context];
[[[partiallyMockImage expect] classMethod] deleteImage:OCMOCK_ANY usingFileManager:[NSFileManager defaultManager]];
[[partiallyMockImage class] deleteImage:image usingFileManager:nil];
[partiallyMockImage verify];
}
Class KRImage是一个带有filepath字段的权限类。它是NSManagedObject的子类。使用的方法[KRImage imageWithURLString:(NSString*)urlString inManagedObjectContext:(NSManagedObjectContext*)context
正常工作并返回我的一个对象(我检查过它)。
不幸的是,我只看到错误:"没有调用预期的方法"。我真的不知道为什么它不起作用。我使用OCMock框架进行测试。