此blog article說:爲什麼用嘲笑DI比嘲笑objective-c中的對象更好?
雖然存在有時明智的方式來模擬出的對象,而不DI (通常通過嘲笑出類方法,如在上面的OCMock例子 看到),它往往平出不可能。即使有可能,測試設置的複雜性可能會超過其好處。如果 您一直在使用依賴注入,那麼您會發現編寫 使用存根和模擬測試會更容易。
但它不能解釋爲什麼。什麼是可能的情況,其中DI(注入id
對象符合協議)將用於對在Objective-C嘲笑更好,比簡單OCMockito:
[given([mockArray objectAtIndex:0]) willReturn:@"first"];
[verifyCount(mockArray, times(1)) objectAtIndex:];
?
謝謝:)所以我認爲它符合我的狀態「只有當你需要一些超級定製行爲才更好。」 –