<分区>
下面的代码需要写单元测试,我想对类方法canMakePayments做mock,返回yes or no,目前没有找到好的方法,因为canMakePayments是一个类方法(+),好像所有的OCMock方法都是全部用于实例方法(-)。
你们的任何建议或讨论将不胜感激。谢谢。
// SKPaymentQueue.h
// StoreKit
if ([SKPaymentQueue canMakePayments]){
....
}
else{
...
}
<分区>
下面的代码需要写单元测试,我想对类方法canMakePayments做mock,返回yes or no,目前没有找到好的方法,因为canMakePayments是一个类方法(+),好像所有的OCMock方法都是全部用于实例方法(-)。
你们的任何建议或讨论将不胜感激。谢谢。
// SKPaymentQueue.h
// StoreKit
if ([SKPaymentQueue canMakePayments]){
....
}
else{
...
}
最佳答案
一种方法是将类方法包装在您自己的实例方法中:
-(BOOL)canMakePayments {
return [SKPaymentQueue canMakePayments];
}
然后你模拟那个方法:
-(void)testCanHandlePaymentsDisabled {
Foo *foo = [[Foo alloc] init];
id mockFoo = [OCMockObject partialMockForObject:foo];
BOOL paymentsEnabled = NO;
[[[mockFoo stub] andReturnValue:OCMOCK_VALUE(paymentsEnabled)] canMakePayments];
// set up expectations for payments disabled case
...
[foo attemptPurchase];
}
关于objective-c - 如何模拟类方法(+)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427044/