Bir OCMock nesnesinin işlev çağrısının bir yönteme geçirilmesiKindOfClass. Ancak, birim sınaması için döndürülen değer adanmış sınıfa değil, OCMockObjectOCMock nesnesi için isKindOfClass çağrıldığında alay edilen değer nasıl alınır?
cevap
Eğer OCMock nesnesini işlev çağırdığı bir yönteme geçirmek istiyorsanız, Kısmi alay oluşturmalısınızKindOfClass. Aşağıdaki kod size yardımcı olabilir. Benim için çalıştı. FirstViewController
-(void)doSomething:(SecondViewController *)detail
{
if ([detail isKindOfClass:[SecondViewController class]])
{
NSString * returnVal = [detail getName:@"PARAM"];
NSLog(@"returnVal %@",returnVal);
}
}
Bir daha alternatif isKindOfClass yöntemini alay edilir Yani test durumu İşte
- (void)testMyTest
{
CalculatorViewController* masterVC = [[CalculatorViewController alloc]init];
id master = [OCMockObject niceMockForClass:[SecondViewController class]];
BOOL ret = YES;
[[[master expect] andReturnValue:OCMOCK_VALUE(ret)] isKindOfClass:[SecondViewController class]];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
}
Bir mock/niceMock kullanmanın avantajı, nesneyi başlatmanızın gerekmemesidir. Benim durumumda bu nesneyi yaratmak zor. – Giuseppe
ok. Bir alternatif isKindOfClass yönteminin alay edilmesidir. Bu id ana gibi bir şey = [OCMockObject niceMockForClass: [SecondViewController sınıfı]]; BOOL ret = YES; // değerini [[[bekleyen bekletme] ve DönüşMadde: OCMOCK_VALUE (ret)] değiştirebilirKindOfClass: [SecondViewController class]]; –
Yaptığım şey, bir hoşMock kullanmak ve alaylı sınıfı döndürmek için "sınıf" yöntemini kullanmaktır. Bu, herhangi bir KindOfClass için yalnızca EVET döndürmek için daha güvenilirdir. Bu neden OCMock'un varsayılan davranışı benim için açık değil. – Giuseppe
olacak içeride
-(void)testMyTest
{
FirstViewController* masterVC = [[FirstViewController alloc]init];
SecondViewController *second = [[SecondViewController alloc] init];
id master = [OCMockObject partialMockForObject:second];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
[masterVC release];
[second release];
}
doSomething yöntemi yazmaya nasıl tam açıklayan bir bütün makale OCMock isKindOfClass
yöntemi (varsayılan olarak yoktur) ve nasıl kullanılır: http://blog.carbonfive.com/2009/02/17/custom-constraints-for-ocmock/
- 1. OCMock
- 2. Arduino'da çağrıldığında sistem işlevi çıktısı nasıl alınır?
- 3. OCMock protokolü özellikleri?
- 4. OCMock ve UIViewController
- 5. Moq - Yöntem Tepki alay değer
- 6. OCMock orijinal sınıf yöntemine yönlendir
- 7. Gerçek uygulama kullanarak Mockito alay nesnesi
- 8. Değer JSONObject nesnesi
- 9. WCF tarafından iade edilen istemcide erişim nesnesi
- 10. Android'de sabun servisi çağrıldığında çift değer nasıl serileştirilir?
- 11. Sayısal değer Enum'dan nasıl alınır?
- 12. isKindOfClass ve NSStringFromClass, UIApplicationDelegate
- 13. Hedef c isKindOfClass missunderstanding mı?
- 14. Bir EventInfo'dan temsilci nesnesi nasıl alınır?
- 15. Json render belongs_to nesnesi nasıl alınır?
- 16. OCMock, NSBundle yöntemini göstermiyor
- 17. Moq kullanılarak bir yöntem çağrıldığında bir olayı nasıl artırırım?
- 18. javascript'te document.getElementsByClassName ('myTxtBox') öğesinden nasıl değer alınır?
- 19. NSManagedObject başarısız oluyor isKindOfClass test
- 20. jQuery kullanarak bağlantı etiketinden nasıl değer alınır?
- 21. Anahtar/değer JSON nesnesinden anahtarlar nasıl alınır?
- 22. Bir domuz haritasından bir değişken anahtar için değer nasıl alınır?
- 23. Anahtar adıyla mongoDB'den nasıl bir değer alınır?
- 24. JObject'den anahtar ile değer nasıl alınır?
- 25. Tek bir nesneye alay etmek için Scala'daki alaylarda nasıl kullanılır?
- 26. Tüm kontrol edilen onay kutularının sayısı bir sayfada nasıl alınır
- 27. Jenkins'de en son başarılı inşa edilen build_id nasıl geri alınır?
- 28. Swift'de UIApplication ile nasıl alay edilir?
- 29. JavaScript'deki açılır listeden seçili değer nasıl alınır?
- 30. PowerShell tarafından xml'den değer nasıl alınır? sıramı
OCMockObject, bu çerçeve için temel sınıf gibi görünüyor. + (Id) mockForClass: Class'ı çağırıyor ve yaratılan nesnenin neden kendini alay konusu sınıf olarak bildirmediğini merak ediyor musunuz? – JiuJitsuCoder
Eğer hala bu sorunu yaşıyorsanız, kullanım durumunuzu sunabilir misiniz? Ne yapmaya çalışıyorsun? Bazı kodlar analize yardımcı olur. –
Parametre sınıfına bağlı olarak nesneler oluşturan her fabrika sınıfı için yararlı olabilir. Benim durumumda, bu fabrikaları test etmek için sahte şeyler yerine gerçek nesneler yaratmam gerekiyor. – Giuseppe