使用OCMock测试递归方法

时间:2014-05-04 18:07:45

标签: ios objective-c unit-testing ocmock

我有方法:

+(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框架进行测试。

0 个答案:

没有答案