2013-10-25 61 views
9

OCMock提供了一個很好的語法來模擬類方法,但是類方法調用是否可以轉發到真實的類對象?OCMock轉到原始類方法

self.connectionMock = [OCMockObject mockForClass:NSURLConnection.class]; 

[[[[self.connectionMock stub] andDo:^(NSInvocation *invocation) { 
    NSURL *url = [invocation getArgumentAtIndexAsObject:2]; 
    NSLog(@"Passing through mock: %@", url); 
} ] andForwardToRealObject] connectionWithRequest:OCMOCK_ANY delegate:OCMOCK_ANY]; 

問題是andForwardToRealObject只適用於偏差。我可以自己調整方法,但是有沒有一種簡單的方法可以讓我用OCMock調用原始的類方法?

+0

你能使用部分模擬了一類,而不是一個對象的 –

+0

@JoshTheGeek不幸的是'類'不是'NSObject',所以你不能創建一個部分的模擬,如果你試圖在一個實例上創建一個部分模擬,它將不能轉發該類的方法,因爲它沒有搜索類方法選擇器 –

+0

也許還有一種不同的方法,你能更廣泛地解釋你想要做什麼嗎?美東時間? –

回答