Sto provando a scrivere alcuni Test unitari per testare alcuni NSOperations
personalizzati che stiamo scrivendo. Quello che mi piacerebbe fare è creare un Mock of the NSOperation
e metterlo sullo NSOperationQueue
, e quindi attendere che finisca. So che posso swizzle i metodi e non usare lo OCMoc
k, ma davvero non voglio farlo. Mi piacerebbe usare OCMock
. Il codice che sto cercando di correre è qualcosa di simile al seguente:OCMock an NSOperation
MYOperation *operation = [MYOperation new];
id mockOperation = [OCMockObject partialMockForObject:operation];
[NSOperationQueue *queue = [NSOperationQueue new];
[queue setMaxConcurrentOperationCount:1];
[queue addOperation:mockOperation];
Quando il test di unità arriva a questa linea:
[queue addOperation:mockOperation];
ricevo una chiamata a un oggetto un'eccezione deallocato. Qualcuno ha qualche suggerimento su come posso superare questo?
Si tratta di un progetto ARC? –
Sì, è un progetto ARC. –
Esiste un problema noto nel runtime di Apple che riguarda OCMock quando ARC è abilitato. Maggiori dettagli qui: http://www.mulle-kybernetik.com/forum/viewtopic.php?f=4&t=252 –