Ich versuche, einige Unit-Tests zu schreiben einige benutzerdefinierte zu testen NSOperations
, die wir schreiben. Was ich tun möchte, ist ein Mock der NSOperation
erstellen und es auf die NSOperationQueue
setzen, und warten Sie, bis es fertig ist. Ich weiß, ich kann die Methoden swizzle und nicht OCMoc
k überhaupt verwenden, aber ich will das wirklich nicht tun. Ich möchte OCMock
verwenden. Der Code, den ich versuche zu laufen etwas wie folgt aus:OCMock eine NSOperation
MYOperation *operation = [MYOperation new];
id mockOperation = [OCMockObject partialMockForObject:operation];
[NSOperationQueue *queue = [NSOperationQueue new];
[queue setMaxConcurrentOperationCount:1];
[queue addOperation:mockOperation];
Wenn das Gerät Test dieser Linie wird:
[queue addOperation:mockOperation];
ich einen Anruf an einen ausgeplanten Objekt Exception. Hat jemand Vorschläge, wie ich das überwinden kann?
Ist das ein ARC-Projekt? –
Ja, es ist ein ARC-Projekt. –
Es gibt ein bekanntes Problem in der Apple Laufzeitumgebung, das OCMock betrifft, wenn ARC aktiviert ist. Weitere Einzelheiten hier: http://www.mulle-kybernetik.com/forum/viewtopic.php?f=4&t=252 –