Press → key to advance.
Zoom in/out: Ctrl or Command + +/-
TMI
It's like a very basic Selenium for iPhone and iPad apps.
Created to help build an iPad product my team were delivering.
We wanted a safety net of automated tests, unit testing for iOS seemed really challenging.
We examined some existing solutions ...
... but none were quite right.
Frank combines several existing open source tools
It's also spawned a few little tools itself
Given ...
When ...
Then ...
Scenario: Successful log in
Given I have launched my app
When I fill in the "username" textbox with "pete"
And I fill in the "password" textbox with "sekrit"
And I touch the button marked "Logon"
Then I should see "Welcome back, Pete"
Slightly scary regex's, and not-so-scary ruby
Then /^I should see a "([^\"]*)" button$/ do |expected_mark|
check_element_exists("button marked:'#{expected_mark}'")
end
Can also call steps from within steps. Careful with that.
Lots of precanned stuff (particularly for iPhone), similar to Webrat/Capybara.
Frank comes with a set of pre-defined steps. For example:
Web Testing: CSS or XPath
Frank: UISpec's UIScript syntax
Syntax is a little funky, but servicable.
tableView button marked:'Add'
Allows traversal (e.g. all children, first child, parent) and filtering (e.g. just views of class UIButton, with accessibilityLabel 'foo')
The Frank server comes bundled with a single-page web app called Symbiote. It's like a very basic Firebug for iOS apps.
By default it runs on http://localhost:37265/
Allows inspection of a running app's view heirarchy (i.e. DOM)
Allows testing of selectors on a running app
If all goes well, Frank has a lot of growing pains to look forward to!
Business functionality doesn't care whether it's implemented on web, iOS, Android, whatever
Maybe moving beyond Cucumber and Ruby?
I'm always happy to talk more about Frank, and about mobile testing in general.