アーカイブ

‘cucumber’ タグのついている投稿

cucumber-rails の tableishは廃止されました

2013 年 1 月 18 日 件のコメント

約一年前の事ですが、cucumber-rails で tableish が削除されています。

History.md ## [v1.2.0](https://github.com/cucumber/cucumber-rails/compare/v1.1.1…v1.2.0) ### Removed features * The (deprecated) tableish method has been removed. See https://gist.github.com/1299371 for an alternative. (Aslak Hellesøy)

table要素をarrayに変換してくれる便利なメソッドがなぜ削除されたのか… コミッタの方曰く、Capybaraに強力なAPIがあるんだからいらないでしょ。って方針らしい。

なので v1.2.0 以降では以下のようにするのがよさそう。


https://gist.github.com/4563036

https://gist.github.com/1299371

http://dennisreimann.de/blog/capybara-finder-for-cucumber-rails-deprecated-tableish/

カテゴリー: Development タグ: , ,

cucumber で javascript テスト

2011 年 5 月 11 日 件のコメント

cucumber で javascriptテストなどをする場合はシナリオごとに @javascript タグを付ける。 テストを実行するとなんらかのWebDriver (デフォルトはselenium) がブラウザを起動して テストを実行するわけだが、alert や confirm が邪魔になる場合がある。 これらの確認をする必要がない場合は単純に alert や confirm を上書きして なんの挙動もしないようにしてしまえば良い。

さらに web_steps_ja.rb に利用部品として書いて好きな時にユーザが呼び出せるようにしてしまえば良いかな。

web_steps_ja.rb

module NotificationHelpers
  def ignore_notification(page)
    page.evaluate_script("window.alert = function(msg) { return true; }")
    page.evaluate_script("window.confirm = function(msg) { return true; }")
  end
end
World(NotificationHelpers)</p>

<p>前提 /^通知を無視する$/ do
    ignore_notification(page)
end

test.features (サンプル)

     @javascript
     シナリオ: 〜〜〜を登録する
     前提     ログイン名が&quot;xxxxx&quot;、パスワードが&quot;yyyy&quot;のユーザでログインしている
     前提     &quot;〜〜〜登録&quot;ページを表示している
     前提     通知を無視する</p>

<pre><code> 〜以下任意のテスト〜

 もし         〜をクリックする
 ならば     〜が表示されていること
</code></pre>

<p>

上記テストを実行するとブラウザが勝手に起動してテスト動いていくので selenium に免疫のない人はびっくりしないように :-)

カテゴリー: Development, Ruby タグ: , , ,

cucumber の paths.rb で DBの値を利用する

2011 年 4 月 26 日 件のコメント

そもそも paths.rb の中で Model使えるのかとか思ったのですが、なんの事はない。普通に User.find(123) とかできるのですね。ちゃんと理解していないからこんな疑問が発生するのでしょう。

それはさておき。

when /フォロワーが([0-9]+)人いるユーザのプロフィール画面/
    user = Users.find(:first, :conditions => { :follower => $1.to_i} )
    edit_user_info_path(user.id)

([0-9]+) など、正規表現でマッチングさせておきと $1 で値渡してあげれば OK 正規表現のマッチングで () 内にヒットしたものが $1, $2…となるのを知らない人は意外にいるようだ。

paths.rb っていうか、結局 routes.rb の話なんだよね。

カテゴリー: Development, Ruby タグ: , ,