13
我的方法的一個參數是**錯誤,我的項目處於ARC模式。當爲這個方法寫存根以調用一個模擬方法時,我將參數設置爲低於可能的值。它會導致編譯錯誤或無法匹配參數來調用模擬方法。如何在ARC中的OCMock中模擬**參數
- OCMOCK_ANY
- [OCMArg anyPointer]
- 創建一個NSError對象錯誤和所述[OCMArg setTo:錯誤。
沒有用。
如何模擬這種方法?請指教。
編輯
-(id)init{
self = [super init];
if (self) {
id wcm = [OCMockObject partialMockForObject:self];
[[[wcm stub] andCall:@selector(mockGetWakeupCallsForRoomNumber:error:) onObject:self] getWakeupCallsForRoomNumber:OCMOCK_ANY error:((NSError __autoreleasing **) [OCMArg anyPointer])];
//[[[wcm stub] andCall:@selector(testMockMethod) onObject:self] testMethod];
}
return self;
}
-(void)testMethod
{
NSLog(@"Original");
}
-(void)testMockMethod
{
NSLog(@"Mock");
}
-(NSArray*)mockGetWakeupCallsForRoomNumber:(NSString*)roomNumber error:(NSError**)error
{
@throw @"Mock method called";
}
-(NSArray*)getWakeupCallsForRoomNumber:(NSString*)roomNumber error:(NSError**)error
{
}
上testMockMethod模擬工作。
[[[WCM存根] andCall:@selector(mockGetWakeupCallsForRoomNumber:錯誤:) onObject:自] getWakeupCallsForRoomNumber:OCMOCK_ANY誤差:((NSError __autoreleasing **)[OCMArg anyPointer])];調用不會調用模擬方法。請幫忙。 – Saran
請將您正在測試的測試用例和代碼添加到您的問題中。 –
添加了代碼。這是在庫中負責連接後端服務器。我的意圖是有能力提供模擬,直到在後端實施所需的服務。 – Saran