アーカイブ

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

fixtures yaml をDBにロードする方法

2011 年 5 月 12 日 Aki コメントはありません

# 毎回検索したりしてるのでメモ 
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.

カテゴリー: Development タグ: ,

cucumber で javascript テスト

2011 年 5 月 11 日 Aki コメントはありません

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)

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

test.features (サンプル)

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

     〜以下任意のテスト〜

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

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

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