leviwilson.com

Welcome to the GitHub page of Levi Wilson.

View My GitHub Profile

Blog Entries

April 5, 2013 Migrating Your Source from TFS to Git

June 2, 2012 Maven, Android, Travis-CI and More Awesome Sauce

Projects

Here is a list of some of the latest projects that I have been working on. To see a full list, check out my GitHub profile page.

brazenhead

brazenhead is a low-level driver for Android applications. brazenhead allows you to instrument any application using a very simple json API with very little setup.

Getting Started

$ gem install brazenhead

After this, the only thing that brazenhead requires is to know some information about the application you are trying to instrument.

# tell brazenhead where your application is
server = Brazenhead::Server.new "path/to/your/app.apk"

# start the activity that you'd like to instrument
server.start "SomeActivity"

gametel

gametel is a higher-level abstraction around android cucumber drivers (in particular, brazenhead). gametel provides for a page-object pattern around lower-level cucumber drivers for Android. This allows for you to write very simple abstractions to instrument your Android applications.

Defining a screen

To define a screen, simply use some of gametel's default accessors to define the controls that you have on your activity. Here is an example of a login screen page's definition.

class LoginPage
  include Gametel

  text(:username, :index => 0)
  text(:password, :index => 1)
  button(:login, :text => 'Login')
end

That's it! The only thing left is to utilize your newly defined page-object in your step definitions.

on(LoginPage) do |page|
  page.username = 'levi'
  page.password = 'secret'
  page.login
end