Awesome
<div align="center"> <img src="assets/logo.png" alt="AutoMate, made by PGS Software" /> <br /> <img src="assets/made-with-love-by-PGS.png" /> <p> <a href="https://github.com/PGSSoft/AutoMate">AutoMate</a> • <b>AppBuddy</b> • <a href="https://github.com/PGSSoft/AutoMate-Templates">Templates</a> • <a href="https://github.com/PGSSoft/AutoMate-ModelGenie">ModelGenie</a> </p> </div>AutoMate AppBuddy
AppBuddy
is a helper framework for UI automation tests, designed to work with the AutoMate
. It can disable animations in the application and manage events, reminders and contacts.
Installation
CocoaPods
The most convenient way to install it is by using CocoaPods with Podfile:
pod 'AutoMate-AppBuddy'
Carthage
For Carthage Carthage add a line to Cartfile.private
:
github "PGSSoft/AutoMate-AppBuddy"
Cartfile.private
should be used because AutoMate framework will be used by UI Tests target only not by the tested application.
Swift Package Manager
You can just add AutoMate AppBuddy package to your project by entering it's repository URL
https://github.com/PGSSoft/AutoMate-AppBuddy
Note
AppBuddy
should be linked with target application, not with the test target.
Usage
Full documentation is available at https://pgssoft.github.io/AutoMate-AppBuddy/.
-
Duplicate existing application target.
-
Import
AutoMate_AppBuddy
framework to app delegate.import AutoMate_AppBuddy
-
Setup
LaunchEnvironmentManager
inapplication(_:didFinishLaunchingWithOptions:)
.let launchEnvironmentManager = LaunchEnvironmentManager() launchEnvironmentManager.add(handler: defaultEventKitHander, for: .events) launchEnvironmentManager.add(handler: defaultEventKitHander, for: .reminders) launchEnvironmentManager.add(handler: defaultContactsHander, for: .contacts) launchEnvironmentManager.add(handler: defaultIsInUITestHandler, for: .isInUITest) launchEnvironmentManager.add(handler: AnimationHandler(), for: .animation) launchEnvironmentManager.setup()
Features (or ToDo)
- Disable UIView animations
- Managing events, reminders and contacts
- Two way communication
- Stubbing network requests
- Stubbing contacts, events and reminders
- Stubbing notifications
- Taking screenshots
- Clearing application data
- Simulating push notifications
Example application
AutoMate
repository contains example application under AutoMateExample
directory. Structure of the application is simple, but the project contains extensive suite of UI tests to showcase capabilities of the library.
Development
Full documentation is available at https://pgssoft.github.io/AutoMate-AppBuddy/.
If you want to handle your custom launch environments, you have to implement Handler
protocol, e.g.
struct CustomHandler: Handler {
func handle(key: String, value: String) {
if value == "production" {
}
}
}
launchEnvironmentManager.add(handler: CustomHandler(), for: "SERVER")
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/PGSSoft/AutoMate-AppBuddy.
License
The project is available as open source under the terms of the MIT License.
About
The project maintained by software development agency PGS Software. See our other open-source projects or contact us to develop your product.