/TestingUserDefaults

Simple NSUserDefaults replacement for testing purposes.

Primary LanguageObjective-CMIT LicenseMIT

Build Status

This class is a simple NSUserDefaults replacement that can be used in tests. It does not persist any changes, so that each test can start with precisely controlled defaults environment.

NSUserDefaults *defaults = [NSUserDefaults transientDefaults];
// Write some initial values
[defaults setObject:forKey:…];
[defaults setInteger:forKey:…];
[testedClass setUserDefaults:defaults];
// Verify values written by the tested class
XCTAssertSomething([defaults integerForKey:…], …);

If there’s an accessor that’s not implemented (or implemented correctly), pull requests are welcome.