Hogyan használhatom OCMock tárgyak hívó kódot isKindOfClass?

szavazat
7

Szeretném kipróbálni néhány kódot OCMock.

A belsőségek a kódot felszólítjuk [NSObject isKindOfClass]az ál objektum én eljuttatják a kódot, például így:

if ([object isKindOfClass:[FancyClass class]]) { ...}

Azonban, amikor biztosítani OCMockObject alapú ál létre, mint ez:

mock = [OCMockObject mockForClass:[FancyClass class]];

úgy tűnik, hogy nem megy át a isKindOfClassteszten.

Valami javaslat?

A kérdést 29/01/2009 02:17
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
7

Az általános szabály az, hogy ha hív isKindOfClass:, és te nem halad az egyik plist osztályok (pl NSString vagy NSNumber), Te csinálod rosszul.

Ha a módszer nem két vagy több különböző dolog attól függően, hogy melyik osztály az argumentum, szaggatja fel több módszer, és ellenőrizzen minden módszer külön-külön.

Ha a módszer nem csak egy dolog, de hogy befolyásolja a tárgy eltérő attól függően, hogy melyik osztályba van, akkor:

  1. Készíts egy protokollt. (Jegyzőkönyveket célkitűzés-C az úgynevezett „interfész” néhány más OO nyelvek, mint a Java.)
  2. Hogy a sok osztály mind megfelelnek a protokollt. Ha szükséges, kategória, hogy a szükséges eljárások kívülről.
  3. Hogy a módszer a vizsgált csekket megfelelése a protokoll helyett a jelenlegi isKindOfClass:csekket.
  4. Tedd a módszert vizsgálati módszereket használja a protokoll.
Válaszolt 29/01/2009 03:20
a forrás felhasználó

szavazat
2

Mit szólsz:

    [[[mock stub] andReturnValue:OCMOCK_VALUE((BOOL) {YES})] isKindOfClass:[FancyClass class]];
Válaszolt 06/05/2013 19:37
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more