3 ms·
My personal recommendation on Automated Testing is to use Subliminal https://github.com/inkling/Subliminal https://github.com/inkling/Subliminal Subliminal all
by MaxGabriel 13y ago
My personal recommendation on Automated Testing is to use Subliminal https://github.com/inkling/Subliminal https://github.com/inkling/Subliminal
Subliminal allows you to write tests in Objective-C that interface directly with your app. This makes your tests be more powerful (can test things not visible to the user, and can simulate activity that UIAutomation can't (like a credit card swipe, which is why KIF was invented)).
More amazing is that you get the benefits of static typing. Instead of stringly-typed accessibility identifiers, you can use string constants (NSString * const kIdentifier = @"blah").
It runs by bridging UIAutomation and Objective-C, so its more reliable than KIF, which has to use private API to simulate touches. This doesn't work correctly for gesture recognizers and is very fragile.
- rbritton 13y agoI've been using UIAutomation to automate screenshot generation and make it easier to keep support documents up-to-date. Do you know if this works for that? Straight UIAutomation times out a lot doing that and often requires multiple runs to get everything.
- MaxGabriel 13y agoYes. You can send Javascript to be evaluated by UIAutomation so it has all the capabilities of that UIAutomation does. There's a PR that adds this natively https://github.com/inkling/Subliminal/pull/118 https://github.com/inkling/Subliminal/pull/118, but you can also just implement it yourself quite easily: - (void)captureScreenshotWithFilename:(NSString *)filename { [[SLTerminal sharedTerminal] evalWithFormat:@"UIATarget.localTarget().captureScreenWithName(\"%@\")", [filename slStringByEscapingForJavaScriptLiteral]]; }