Một trong các tham số của phương pháp của tôi là ** lỗi và dự án của tôi ở chế độ ARC. Khi viết sơ khai cho phương thức này để gọi một phương thức giả, tôi đặt tham số bên dưới các giá trị có thể. Hoặc là nó gây ra lỗi biên dịch hoặc không khớp đối số để gọi phương thức giả.Làm thế nào để mô phỏng ** tham số trong OCMock trong ARC
- OCMOCK_ANY
- [OCMArg anyPointer]
- Tạo một lỗi đối tượng NSError và nói [OCMArg setTo: lỗi].
Không có gì hiệu quả.
Làm thế nào để thử phương pháp như vậy? Làm ơn cho lời khuyên.
Sửa
-(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
{
}
Mock trên testMockMethod hoạt động.
[[[WCM cuống] andCall: @selector (mockGetWakeupCallsForRoomNumber: lỗi :) onObject: tự] getWakeupCallsForRoomNumber: Lỗi OCMOCK_ANY: ((NSError __autoreleasing **) [OCMArg anyPointer])]; các cuộc gọi không gọi phương thức giả. Hãy giúp tôi. – Saran
Vui lòng thêm trường hợp thử nghiệm và mã bạn đang thử nghiệm cho câu hỏi của mình. –
Đã thêm mã. Đây là thư viện chịu trách nhiệm kết nối máy chủ phụ trợ. Ý định của tôi là có khả năng cung cấp mô hình cho đến khi dịch vụ được yêu cầu được triển khai ở phần cuối. – Saran