你好,我試圖改變我已存在的函數的參數。 我在日誌中看到我的存根調用成功,我想更改其中一個參數並運行原始函數。我可以用OCMock做到嗎?有沒有辦法改變OCMock中的一個參數,並繼續運行存根函數
下面是我在做什麼:
....
id testMgrMock = [OCMockObject partialMockForObject:testClassInstance];
OCMStub([testMgrMock addRequestWithMethod:OCMOCK_ANY
path:OCMOCK_ANY
parameters:OCMOCK_ANY
headers:OCMOCK_ANY
body:OCMOCK_ANY
delegate:OCMOCK_ANY
successBlock:OCMOCK_ANY
failureBlock:OCMOCK_ANY]).
andDo(^(NSInvocation* invocation){
NSString* path = @"http://addressnotexi.st";
[invocation setArgument:&path atIndex:2];
// here I want to call "addRequestWithMethod:path:parameters:header (etc)"
// on a real object with the parameter "path" changed to my string
[invocation invoke];
});
......
行[invocation invoke];
給我bad_exec崩潰。即使我不改變參數。
如何正確地做到這一點?它有可能嗎?
謝謝
您是否曾嘗試在調用invoke之前告訴調用以保留其參數? –
是的,它沒有工作 –