2016-07-12 23 views
0

Ich teste eine Klasse mit einem Delegaten. Der Delegierte ist die Testklasse natürlich und aus der Umsetzung der Delegatmethoden nenne ich unterschiedliche Erwartungen:XCTest: Wie kann ich feststellen, welche XCTestExpectation aufgerufen "erfüllt"?

- (void)mySuccess { 

     [self.successExpectation fulfill]; 

} 

- (void)myFail:(NSError *)error { 

    [self.failExpectation fulfill]; 

} 

Wie kann ich von der Testklasse sagen, welche Erwartung ‚erfüllen‘ genannt?

Antwort

0

Dies ist nicht wahr, wie Erwartungen verwendet werden sollen. Sie sollten eine Erwartung in die Warteschlange stellen, dass etwas passiert, das dann erfüllt werden kann oder nicht. Der Test wird fehlschlagen, wenn Ihre Erwartungen nicht erfüllt werden, was bedeutet, dass Sie nicht verfolgen müssen, ob die Erwartung "Erfolg" oder "Erfolg" erfüllt wurde. Sie können Erfolg oder Misserfolg aus einer einzigen Erwartung ableiten, also sollten Sie Erwartungen auf diese Weise nutzen, wenn dies mit Ihrem Code möglich ist.

Zum Beispiel sollte Ihre mySuccess-Methode auf Ihre Erwartung erfüllen, aber myFail sollte nichts tun (was dazu führen, dass Ihre Erwartung nicht erfüllt wird) und/oder einen Fehler oder XCTFail() auslösen.

+0

Nun, ich wollte überprüfen, dass im Falle eines Fehlers die Delegate-Methode myFail tatsächlich aufgerufen wird. Jedenfalls sehe ich, dass ich ein bisschen kreativ sein muss. Vielen Dank! – Yotam

+0

In diesem Fall werden Sie einfach die mySuccess-Erwartung los und lassen Sie Ihren Text basierend auf der myFail-Erwartung scheitern oder passieren. :) – Oletha