2015-04-13 8 views
5

Birim testlerim için OCMock'tan bu yana kullanıyorum. NSBundle'dan objectForInfoDictionaryKey: yöntemini saptamam gerekiyor. Hala "Doğru" değerine sahipOCMock, NSBundle yöntemini göstermiyor

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

Ama hiçbir şey stubbed gibi görünüyor, zamanında: Burada

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

çağrı İstiyorum taslaktır: Aşağıdaki yaptık.

Neyi yanlış yaptım?

cevap

5

ben misremembering olabilir, ama [NSBundle mainBundle] tarafından döndürülen örneği alay etmek partialMockForObject kullanmaya ihtiyacım var, yerine objectForInfoDictionaryKey bir örnek yöntemi değil, bir sınıf yöntemi olmadığından sınıf NSBundle alay.

+0

Cevabınız için teşekkürler! Bu yöntemi daha önce fark etmedim! – Loadex

+0

Sevindim – bplattenburg

+0

Yardım edebilirim Bu yüzden sorudaki kod yerine tam olarak ne kullanırım? ; 'self.bundleMock = OCMPartialMock ([NSBundle mainBundle]): Orijinal Sorunun kodu ile uygun olarak http://ocmock.org/reference/#partial-mocks - – Jeff