在大多數我的班,與默認工作的我做了默認對象設定:如何使用NSUserDefaults進行測試?
@property(retain) NSUserDefaults *defaults;
據說這是爲了使測試更加簡單:
// In a nearby test class:
- (void) setUp {
[super setUp];
NSUserDefaults *isolatedDefaults = [[NSUserDefaults alloc] init];
[someObjectBeingTested setDefaults:isolatedDefaults];
}
但現在我已經找到了,然後當我創建一個新的默認對象,其中已經有一些值。那可能嗎?我想我可以通過調用-init
來創建一個空的,孤立的默認對象。如果我想測試基於默認的代碼,是否在測試代碼的某個地方有bug?還是我真的必須做更復雜的事情(如存根或模擬)?
感謝您創造這個! – Palimondo 2012-11-15 14:44:24
非常好,謝謝!我現在正在使用你的類,但是不用'NSUserDefaults'作爲'someObjectBeingTested'的參數注入,我使用'Kiwi'來模擬存根。使用類似:'id transientDefaults = [NSUserDefaults transientDefaults]; [NSUserDefaults存根:@selector(standardUserDefaults)和Return:transientDefaults];' – kernix 2015-01-21 20:53:58