2015-04-13 12 views
5

nicht an Ich verwende seit kurzem OCMock für meine Unit-Tests. Ich muss die objectForInfoDictionaryKey: Methode von NSBundle stubben. Ich habe folgendes getan:OCMock stößt NSBundle-Methode

self.bundleMock = OCMClassMock([NSBundle class]); 
OCMStub([self.bundleMock objectForInfoDictionaryKey:@"GITHash"]).andReturn(@"c424242"); 
; 

Hier ist der Anruf Ich will Stub:

NSString * appHashString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GITHash"]; 

Aber nichts scheint stubbed zu werden, zur Laufzeit habe ich noch den „richtigen“ Wert haben.

Was habe ich falsch gemacht?

Antwort

5

ich misremembering werden könnte, aber ich glaube, Sie partialMockForObject verwenden müssen von [NSBundle mainBundle] die Instanz zurück zu verspotten, sondern die Klasse der spöttischen NSBundle weil objectForInfoDictionaryKey eine Instanzmethode ist, kein Verfahren Klasse.

+0

Danke für Ihre Antwort! Ich habe diese Methode vorher nicht bemerkt! – Loadex

+0

Froh ich könnte helfen – bplattenburg

+0

Also statt den Code in der Frage verwende ich was genau? – Jeff