ruby

Page objects in Ruby

Because “clicking a button” should not exist in your domain language. When we write tests, we want to be able to write them in a way which is relevant to the problem the application (or sub-component) solves, rather than how it is implemented. So, if you get an urge to reimplement natural numbers, then you…

A Double Fugue in Traits

Traits provide a means of composing an object’s functionality out of smaller, simpler parts. Verbs being limited in number, especially good ones, sometimes you want to compose two traits that share names. Today we’re going to look at how to resolve the dispute.

Testing Ansible playbooks with Vagrant

One of the projects here at LShift uses ansible to configure its EC2 machines. I needed to refactor the playbook in a minor way. But of course “refactor” doesn’t just mean “change the code”. It means “change the code (presumably for the better) while preserving behaviour“. I really didn’t want to check the change by…

iOS Enterprise Program: Distribution certificates

To develop apps for iOS you need an Apple Developer Account. There is the normal developer program which costs $99/year and allows you to distribute apps publically through the app store. However, there is also the Enterprise account which costs $300/year. With the Enterprise account (which only businesses can apply for) you are unable to…