我正在嘗試使用OCMock庫。我正在嘗試創建類對象的模擬,但它無法驗證該方法。我無法理解測試失敗的原因。如何使用OCMock驗證靜態方法
@interface MyClass:NSObject
+(void) someMethod;
@end
@implementation MyClass
+(void) someMethod
{
NSError* error = nil;
if (![Utility isValidPropWithError:&error])
{
[Logger log:LoggerLevelWarning message:[error localizedDescription] className:className];
}
}
@end
測試:
-(void)testIfLoggerIsset{
id partialMockLogger = OCMClassMock([Logger class]);
id partialMockUtility = OCMClassMock([Utility class]);
id partialMockClass = OCMClassMock([MyClass class]);
NSError *error = nil;
OCMExpect([partialMockUtility isValidPropWithError:&error]);
[MyClass someMethod];
//This works fine.
OCMVerifyAll(partialMockClass);
NSString *className = @"classname";
//This is failing...
OCMVerify([partialMockUtility isValidPropWithError:&error]);
OCMVerifyAll(partialMockUtility);
//This is failing...
OCMVerify([partialMockLogger log:LoggerLevelWarning message:[error localizedDescription] className:className]);
[partialMockUtility stopMocking];
[partialMockLogger stopMocking];
}
在上面的代碼,雖然[Utility isValidPropWithError:&error];
稱爲OCMVerify([partialMockUtility isValidPropWithError:&error]);
失敗。