2013-10-25 7 views
9

OCMock offre un bel sintassi per i metodi della classe finte, ma può chiamate di metodo di classe trasmessa all'oggetto classe reale?OCMock l'ora di classe originale metodo

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]; 

Il problema è andForwardToRealObject funziona solo per i parziali. Potrei fare il metodo swizzling me stesso, ma c'è un modo semplice per me per chiamare il metodo di classe originale utilizzando OCMock?

+0

si può utilizzare un mock parziale con una classe, invece di un oggetto –

+0

@JoshTheGeek Purtroppo una classe ' '' non è un NSObject' quindi non è possibile creare un finto parziale, su di esso. Se si tenta di creare un mock parziale su un esempio, non sarà in grado di trasmettere il metodo della classe, perché non sta cercando il metodo della classe selettori –

+0

Forse c'è un approccio diverso. Puoi spiegare più in generale ciò che stai cercando di est? –

risposta