約一年前の事ですが、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/
http://www.flickr.com/photos/hsbt/8275763891/
大盛況だったRailsGirlsKyoto 1st.
あれから2週間経ち今年も終わろうとしています。
RailsGirlsKyotoでは事前事後でわりとバタバタして大変でしたが、自分にとってかけがえのない経験になった事は間違いありません。
なにより参加者の皆様からは想像以上の反響を頂きました。イベント自体が楽しかった事や Ruby, Railsに出会えて良かった事などもアフターパーティーで熱く語っていただいたのが特に印象的で「more イベントに是非参加したい。第2回の開催をしたい。お手伝いしたい。」など具体的な内容も耳にしました。Girlsだからなのか京都だからなのかはわからないのですが、皆さんからはすごくパワーを感じました。 (当日の様子は公式blogで !)
続きを読む…
毎回検索したりしてるのでメモ
rake db:fixtures:load
test/fixtures に配置した テーブル名.yml(yaml形式で記述されたデータ定義) ファイルをDBに登録する。
テーブル名指定
FIXTURES=x,y
ex. rake db:fixtures:load FIXTURES=x,y
サブディレクトリ指定 (test/fixtures 以下でサブディレクトリを切ってデータを分ける場合など)
FIXTURES_DIR=z
ex. rake db:fixtures:load FIXTURES=x,y FIXTURES_DIR=z
ディレクトリ指定 (test/fixtures 以外でパス指定する場合)
FIXTURES_PATH=spec/fixtures
ex. rake db:fixtures:load FIXTURES=x,y FIXTURES_PATH=spec/fixtures
Load fixtures into the current environment’s database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z. Specify an alternative path (eg. spec/fixtures) using FIXTURES_PATH=spec/fixtures.
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
シナリオ: 〜〜〜を登録する
前提 ログイン名が"xxxxx"、パスワードが"yyyy"のユーザでログインしている
前提 "〜〜〜登録"ページを表示している
前提 通知を無視する</p>
<pre><code> 〜以下任意のテスト〜
もし 〜をクリックする
ならば 〜が表示されていること
</code></pre>
<p>
上記テストを実行するとブラウザが勝手に起動してテスト動いていくので selenium に免疫のない人はびっくりしないように :-)