タグ

ブックマーク / blog.kazu69.net (2)

  • Capybaraでjavascriptのajaxなテストにuntilを使うと便利だった

    Capybaraのテストでajaxな処理の部分のテストを wait などで適当な秒数だけ遅延させていたけど、 untilというのを使うと便利ということを教えていただいた。 たとえば、ajax処理後に特定のhtml要素が表示されることを評価するなら という感じでhelperを作成しておけば のように使用できる。 これまではajaxのレスポンスを** wait 5 などで遅延していたけど、until**を使うと条件がtrueになるまで評価を行ってくれるらしい。 無駄な待ち時間を短縮できるので便利でした。

    taro-maru
    taro-maru 2016/01/13
  • Railsでマルチスレッド処理のテストを書く際の設定

    Railsアプリケーションにおいて、マルチスレッド処理でレコード取得処理を行う処理を書くときに、Rspecの設定周りでいろいろと知ることができたのでメモ。 テスト環境は Rspec + FactoryGirl + DatabaseCleaner という感じ。 まず、テストの流れとして、 FactoryGirlなどからデータベースにデータが挿入される。これは一般的にTransactionで行われる。 そして、テストが終了するとTransactionはロールバックされてデータベースは元の状態に戻る。 しかし、マルチスレッドでレコード取得を行っていると、 テスト開始時にTransaction内でデータは挿入されるが、それぞれ別のスレッドからはTransaction内のデータを参照できないため、レコードの取得ができずに、テストは落ちることになる。 そこでrspecの設定でTransactionでの

  • 1