WebHU - Programozási kérdések és válaszok

iOS íróegység-teszt Mknetworkkittel

Megpróbáltam futtatni az MKNetworkKitet a projektemben, úgy tűnt, hogy rendben van. Ezután létrehoztam egy egységteszt-projektet, és felhívtam a motort néhány kérés végrehajtására (az MkNetworkOperation segítségével). Nem kapok látható hibát, de a befejezéskezelő blokkot soha nem hívják meg, és a hibablokkot sem.

Megvizsgáltam az egységteszt beállításait, nem volt látható hiba, és az egész "futott". egyszerűen nem kapok választ. Ha váltok, és ezt csinálom a fő projektemben, akkor működik.

Az egységteszt-projekthez is hozzáadtam az összes szükséges keretet.

Egy dolgot veszek észre, hogy az Elérhetőségi üzenetet kinyomtatják arra az esetre, amelyik működött, de semmit nem arra az esetre, amelyik nem.

Van valami tipp, hogy mi történik?


Válaszok:


1

Úgy hangzik, hogy szüksége van egy szemaforra vagy valami hasonlóra, hogy blokkolja a végrehajtást, amíg a kérés vissza nem tér. Az egységtesztek a módszer végéig futnak. Ha hiba nélkül eltalálták a metódus végét, akkor sikeresek voltak. Mivel az MKNetworkKit-et használja, a kiszolgáló kérése aszinkron, így a metódus végére kerül sor, mielőtt a kérés befejeződött volna. Találtam egy segítő osztályt, aki segít az egységtesztekben. Megpróbálom újra megtalálni és belinkelni valami mintakóddal.

Megtaláltam: http://www.touch-code-magazine.com/unit-testing-for-blocks-based-apis/

Szóval már egy ideje megírtam ezeket a teszteket. Biztos vagyok benne, hogy ez működni fog, de lehet, hogy módosítania kell.

-(void)tests {
    //setup
    NSString *key = @"myTestKey";

    //test
    STAssertNoThrow(
        [API resetPassword:@"[email protected] callback:^(NSDictionary *result) {

        STAssertNotNil(result, @"reset pass response was nil"]);
        [[TestSemaphor sharedInstance] lift:key];
    } error:^(NSDictionary *error) {

        STFail(@"reset password failed: %@", error.description);
        [[TestSemaphor sharedInstance] lift:key];
    }], @"reset password failed");

    [[TestSemaphor sharedInstance] waitForKey:key];
}
19.07.2013
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..