objects-factory
helps to create objects for unit tests that have a private initializer.
It's important that the class you want to instantiate is a subclass of NSObject
.
import ObjectsFactory
do {
let session = try ObjectsFactory.create(UIScene.self)
let _ = try ObjectsFactory.create(UIWindowScene.self, properties: ["session": session])
} catch {
// Handle an error here
}
- iOS 13.0+
- Xcode 14.0
- Swift 5.7
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift
compiler. It is in early development, but objects-factory
does support its use on supported platforms.
Once you have your Swift package set up, adding objects-factory
as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/space-code/objects-factory.git", .upToNextMajor(from: "1.0.0"))
]
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Bootstrapping development environment
make bootstrap
Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request!
Nikita Vasilev, nv3212@gmail.com
objects-factory is available under the MIT license. See the LICENSE file for more info.