An open API service indexing awesome lists of open source software.

https://github.com/space-code/objects-factory

The framework that helps you create objects for unit tests with ease
https://github.com/space-code/objects-factory

swift unit-testing

Last synced: 12 months ago
JSON representation

The framework that helps you create objects for unit tests with ease

Awesome Lists containing this project

README

          

objects-factory


License
5.7
CI

CodeCov

## Description
`objects-factory` helps to create objects for unit tests that have a private initializer.

- [Usage](#usage)
- [Requirements](#requirements)
- [Installation](#installation)
- [Communication](#communication)
- [Contributing](#contributing)
- [Author](#author)
- [License](#license)

## Usage

⚠️ It should only be used for testing purposes, like for unit-testing. ⚠️

It's important that the class you want to instantiate is a subclass of `NSObject`.

```swift
import ObjectsFactory

do {
let session = try ObjectsFactory.create(UIScene.self)
let _ = try ObjectsFactory.create(UIWindowScene.self, properties: ["session": session])
} catch {
// Handle an error here
}
```

## Requirements
- iOS 13.0+
- Xcode 14.0
- Swift 5.7

## Installation
### Swift Package Manager

The [Swift Package Manager](https://swift.org/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`.

```swift
dependencies: [
.package(url: "https://github.com/space-code/objects-factory.git", .upToNextMajor(from: "1.0.0"))
]
```

## Communication
- 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.

## Contributing
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!

## Author
Nikita Vasilev, nv3212@gmail.com

## License
objects-factory is available under the MIT license. See the LICENSE file for more info.