2
我有一個應該調用完成塊或失敗塊的方法的單元測試。現在我知道每個情況下應該調用哪一個,所以我在不應該調用的塊中使用STFail
。如何測試塊是否被調用
我該如何測試應該調用的塊是否真的被調用?
這是我的設置:
NSString *parameter = @"foo";
[controller doSomethingWithParameter:parameter withcompletionBlock:
^(NSString *result)
{
// This block should be invoked
// Check if the result is correct
STAssertEquals(result, kSomeOKConstant, @"Result shout be 'kSomeOKConstant'");
} failedBlock:
^(NSString *errorMessage) {
STFail(@"No error should happen with parameter '%@'",parameter);
}];
但是我可以在哪裏做這個斷言。如果我在調用'doSomethingWithParameter'之後執行它,那麼它將被設置爲'NO',對吧? – Besi 2012-01-27 12:01:13
@Besi否,一旦它被設置在塊中,即使在doSomethingWithBlock返回後,它仍將保持爲YES。這是__block變量的「魔力」。 – dasblinkenlight 2012-01-27 12:23:06
沒辦法?!現在我既困惑又興奮:-)我會給它一個鏡頭,提前感謝。 – Besi 2012-01-27 12:27:10