Automated acceptance testing for mobile apps
For iOS and Android native apps
Open source, made by Xamarin
Assertions are powered by Cucumber and written in steps, usually using plain English sentences
Written in Ruby
@chooz-login
Feature:
Scenario:
Given I wait for "Chooz ze good" to appear
Then I press "Se connecter avec email"
Then I wait for "Ton mot de passe" to appear
Then I press "Revenir"
And I wait for "Chooz ze good" to appear
Then I press "Se connecter avec email"
Then I wait for "Ton mot de passe" to appear
Then(/^I should see '(.*)'$/) do |expected_mark|
until element_exists("view marked:'#{expected_mark}'")
|| element_exists("view text:'#{expected_mark}'")
screenshot_and_raise "No element found: #{expected_mark}"
end
end
Features with scenarios
Steps
https://github.com/calabash/calabash-ios
Tutorial & documentation on the GitHub:
I added Calabash to a React Native app:
https://github.com/bamlab/rn-calabash-demo
I wait for "..." to appear
I touch "..."
I should see "..."
I should see text starting with "prefix"
I enter "..." into input field number 1
I pinch to zoom in
I swipe left
I take picture
https://github.com/calabash/calabash-ios/wiki/02-Predefined-steps
See documentation:
Write new steps:
https://github.com/calabash/calabash-ios/wiki/Calabash-iOS-Ruby-API
Something fails for obscure reasons
Relaunch the iOS simulator for each feature to test
Hard to launch on a CI server
Functional tests are taking ages to run
Steps are different for Android & iOS