Я пытаюсь издеваться над NSUserDefaults в Swift, чтобы иметь возможность создавать тесты классов, использующих NSUserDefaults. Теперь я столкнулся с проблемой, потому что у Proxy нет публичного инициализатора, и я не могу перезаписать его. Я не могу использовать обычный прокси-сервер либо потому, что его инициализатор является закрытым и не может использоваться вне области вложенности.Swift mocking NSUserDefaults
Любые идеи, как это решить? Какие-нибудь опрятные трюки, которые могут помочь мне инициализировать FakeProxy?
public class FakeProxy : NSUserDefaults.Proxy {
private let defaults: NSUserDefaults
private let key: String
public init(_ defaults: NSUserDefaults, _ key: String) {
self.defaults = defaults
self.key = key
// Problem: Super.init isn't called before returning from initializer
}
...
}