TurnipでAppiumを使ってみる

AppiumはRSpecでシナリオの記述が可能。さらにはCucumberも可能ということなので、ついでにTurnipでも実行可能なのか試してみました。

結果としては可能なのですが、以下、いくつか試したことをピックアップ。

試したときのファイル構成は以下の感じ。

.
├── .gitignore
├── .rspec
├── Gemfile
├── Gemfile.lock
├── README.rdoc
├── Rakefile
└── spec
├── acceptance
│   └── ios
│      └── ios_sample.feature
├── spec_helper.rb
├── steps
│   └── ios_sample_steps.rb
└── turnip_helper.rb

Gemfileの中身

source "https://www.rubygems.org"

gem 'rspec'
gem 'selenium-webdriver'
gem 'turnip'

.rspecの中身

--color
-r turnip/rspec

ios_sample.featureが、以下のようなシナリオを記述したFeatureファイル。

Feature: acceptance test
  Scenario: display the result of google search
    Given test with 'iPhone Simulator'
    Then go to 'https://google.com'
    Then input 'ゆき' in search field
    Then submit form
    Then display search page ?
    Then save screenshot

それぞれのThenの時の振る舞いを記述したstepファイルが ios_sample_steps.rb

spec_helper.rbは以下

require 'selenium-webdriver'
#require 'date'

Dir.glob('spec/**/*steps.rb') { |f| load(f, true) }

実行自体はrspecの実行同様です。
ここら辺はTurnipとかわらないですねー。

少しこの形式で試してみて思ったこと。

  • ユーザシナリオベースでシナリオを記述するならTurnipはあり
  • Cucmberよりも理解しやすい、RSpecの延長ととらえてシナリオを書くことができる

というのは良い点かなと。
少し会社で今までRSpecで書いたものをTurnipを使って書いてみようかなと思ったり。

ところで、Calabashが最近社内で使われていることを知ったのですが、Appiumのほうが個人的にはよいかなと思ってます。
– iOS/androidともに、リリースモジュールで試験可能
– Cucmberは少し煩雑(保守性が不安)なので、Turnipで書くことも可能

一方、もしもCalabashのほうが気軽に使えるのなら、Appiumよりもありかなと思ってます。
Calabashも試してみよう。

1 Comment

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.