Wie erstelle ich eine Klassenmethode in OCMock?

In meinen iPhone Objective-C-Komponententests stelle ich häufig fest, dass ich eine Klassenmethode ausarbeiten möchte, z. + SendSynchronousRequest: returningResponse: error: method von NSUrlConnection.

Vereinfachtes Beispiel:

- (void)testClassMock
{
    id mock = [OCMockObject mockForClass:[NSURLConnection class]];
    [[[mock stub] andReturn:nil] sendSynchronousRequest:nil returningResponse:nil error:nil];
}

Wenn ich das laufen lasse, bekomme ich:

Test Case '-[WorklistTest testClassMock]' started.
Unknown.m:0: error: -[WorklistTest testClassMock] : *** -[NSProxy doesNotRecognizeSelector:sendSynchronousRequest:returningResponse:error:] called!
Test Case '-[WorklistTest testClassMock]' failed (0.000 seconds).

Es fiel mir wirklich schwer, eine Dokumentation zu diesem Thema zu finden, aber ich gehe davon aus, dass Klassenmethoden von OCMock nicht unterstützt werden.

Ich habe diesen Tipp nach vielem Googeln gefunden. Es funktioniert, ist aber sehr umständlich:http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/

Gibt es überhaupt eine Möglichkeit, dies in OCMock zu tun? Oder kann sich jemand ein cleveres Objekt der Kategorie OCMock vorstellen, das für diese Zwecke geschrieben werden könnte?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage