Calabash-Androidで BDDしようぜ!     2012/08/16     @patorash
Cucumberとは?• Ruby製 のBDD用のライブラリ• BDDとは振る舞い駆動開発の略• 受け入れテストでよく使われる• ユーザーストーリーを書いてそれに沿っ た実装をするため、仕様の漏れを失く せる。
なぜCucumber?•   日本語でテストが書けるから• ちなみにCucumberはキュウリのこと
Calabash-Androidとは?• AndroidアプリでCucumberを使ってテス トできるライブラリ• gemでインストールが可能• ちなみにCalabashは瓜(ウリ)のこと
インストール方法•   Android SDKをインストールしとく•   ANDROID_HOMEという環境変数を    定義する(Android SDKへのパス)•   Rubyのインストールをしとく    (ぐぐってね)•   gem in...
初期化•   (Androidプロジェクトで)calabash-android gen•   以下のファイル群ができる。    features/step_definitions/    features/support/    features...
features/step_definitions• ステップ処理を書くところ• 不明なステップができたらここに書い  ていく。Rubyで記述する。• 日本語での対応処理をここに書く  (後述)
こんな感じ# coding: utf-8require calabash-android/calabash_stepsもし /^"(.*?)"ボタンを押す$/ do |text| step %{I press the "#{text}" but...
features/***.feature• テスト内容を書くところ• ある程度決められたルールで書く (例)• 前提 ログインしていること• もし 面白いツイートをする• ならば ふぁぼられること
デモアプリ解説•   ログインID、パスワー    ドを入力する。•   OKなら次の画面へ•   NGならトーストで    エラー表示
まずは書く!• my_first.featureを編集する (別にファイル名はなんでもいい)• まずは好き勝手に日本語で書く!• こうなるべきだというのを書く!
# language: jaフィーチャ: ユーザー認証を行う。 アプリのユーザーとして                  ユーザーストーリーを記述 認証を行う。 なぜならば、ユーザー単位の情報を扱うからだ。シナリオ: 正常にログインする もし ...
テスト実行• テスト端末に対象アプリをインストール• calabash-android run bin/calabash-sample.apk  (引数にapkファイルを指定する)
_人人人人人人人_  > 当然エラー <    ̄^Y^Y^Y^Y^Y^ ̄• stepの定義してないから。• でも安心!!• テストの雛形をCucumberが作ってくれ る!あとはコピペするだけ!楽チン!
こんなのもし /^ログインIDに"(.*?)"と入力する$/ do |arg1| pending # express the regexp above with the code you wish you hadendもし /^パスワードに"(...
ステップの編集もし /^ログインIDに"(.*?)"と入力する$/ do |loginId| step %{I enter "#{loginId}" into "LoginId"}end・何をしているか?contentDescriptionが”...
実はgistにアップ済み•   https://gist.github.com/ae31aca10f3152ad8cd0    ※不完全だし未検証だけど
ということで、  デモ
所感• BDDやるにはそこそこ出来上がってる。• 細かくテスト流すのは時間がかかって キツイ。受け入れテストにはよさげ。• 事前のデータ投入などできないと思う。 (無理矢理ループしまくるとか?)• ユニットテストはJUnitで。
お・わ・り
Upcoming SlideShare
Loading in...5
×

Calabashでbddしようぜ

5,357

Published on

Calabash-AndroidでBDDしようぜ!
Calabash-AndroidはCucumberでAndroidのテストができるツールです。
それをLTで紹介しましたのでその資料を公開します。

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,357
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
19
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Calabashでbddしようぜ

    1. 1. Calabash-Androidで BDDしようぜ! 2012/08/16 @patorash
    2. 2. Cucumberとは?• Ruby製 のBDD用のライブラリ• BDDとは振る舞い駆動開発の略• 受け入れテストでよく使われる• ユーザーストーリーを書いてそれに沿っ た実装をするため、仕様の漏れを失く せる。
    3. 3. なぜCucumber?• 日本語でテストが書けるから• ちなみにCucumberはキュウリのこと
    4. 4. Calabash-Androidとは?• AndroidアプリでCucumberを使ってテス トできるライブラリ• gemでインストールが可能• ちなみにCalabashは瓜(ウリ)のこと
    5. 5. インストール方法• Android SDKをインストールしとく• ANDROID_HOMEという環境変数を 定義する(Android SDKへのパス)• Rubyのインストールをしとく (ぐぐってね)• gem install calabash-android
    6. 6. 初期化• (Androidプロジェクトで)calabash-android gen• 以下のファイル群ができる。 features/step_definitions/ features/support/ features/my_first.feature irb_android.sh
    7. 7. features/step_definitions• ステップ処理を書くところ• 不明なステップができたらここに書い ていく。Rubyで記述する。• 日本語での対応処理をここに書く (後述)
    8. 8. こんな感じ# coding: utf-8require calabash-android/calabash_stepsもし /^"(.*?)"ボタンを押す$/ do |text| step %{I press the "#{text}" button}endならば /^"(.*?)"と表示されていること$/ do |text| step %{I should see "#{text}"}end
    9. 9. features/***.feature• テスト内容を書くところ• ある程度決められたルールで書く (例)• 前提 ログインしていること• もし 面白いツイートをする• ならば ふぁぼられること
    10. 10. デモアプリ解説• ログインID、パスワー ドを入力する。• OKなら次の画面へ• NGならトーストで エラー表示
    11. 11. まずは書く!• my_first.featureを編集する (別にファイル名はなんでもいい)• まずは好き勝手に日本語で書く!• こうなるべきだというのを書く!
    12. 12. # language: jaフィーチャ: ユーザー認証を行う。 アプリのユーザーとして ユーザーストーリーを記述 認証を行う。 なぜならば、ユーザー単位の情報を扱うからだ。シナリオ: 正常にログインする もし ログインIDに"calabash"と入力する かつ パスワードに"android"と入力する かつ "ログイン"ボタンを押す シナリオを記述 かつ ダイアログが閉じるまで待つ ならば "SuccessActivity"画面が表示されるまで待つ かつ "ログインしました"と表示されていること
    13. 13. テスト実行• テスト端末に対象アプリをインストール• calabash-android run bin/calabash-sample.apk (引数にapkファイルを指定する)
    14. 14. _人人人人人人人_ > 当然エラー <  ̄^Y^Y^Y^Y^Y^ ̄• stepの定義してないから。• でも安心!!• テストの雛形をCucumberが作ってくれ る!あとはコピペするだけ!楽チン!
    15. 15. こんなのもし /^ログインIDに"(.*?)"と入力する$/ do |arg1| pending # express the regexp above with the code you wish you hadendもし /^パスワードに"(.*?)"と入力する$/ do |arg1| pending # express the regexp above with the code you wish you hadend これをstep_definitions/***_steps.rbにコピペする
    16. 16. ステップの編集もし /^ログインIDに"(.*?)"と入力する$/ do |loginId| step %{I enter "#{loginId}" into "LoginId"}end・何をしているか?contentDescriptionが”LoginId”のEditTextにログインIDを入力しているこんな感じでどんどんステップを書いていく。ステップ用のコードはgithubに書いてあるからそれを参考に日本語で定義し直せばいい。https://github.com/calabash/calabash-android/blob/master/ruby-gem/lib/calabash-android/canned_steps.md
    17. 17. 実はgistにアップ済み• https://gist.github.com/ae31aca10f3152ad8cd0 ※不完全だし未検証だけど
    18. 18. ということで、 デモ
    19. 19. 所感• BDDやるにはそこそこ出来上がってる。• 細かくテスト流すのは時間がかかって キツイ。受け入れテストにはよさげ。• 事前のデータ投入などできないと思う。 (無理矢理ループしまくるとか?)• ユニットテストはJUnitで。
    20. 20. お・わ・り
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×