大江戸Ruby会議06 トーク資料

上からも分かるように、ページの読み込みが完了する前に、テストでリンク探しを始めたのにも関わらず、Capybaraは優雅にインタラクションを処理しています。 しかし、Capybaraがこれらの非同期の問題を処理してくれるにもかかわらず、成功したり失敗したりする一貫性のないテストにいとも簡単に陥ってしまうのはなぜなのでしょう。 競合状態の数を最小限に抑えて、Capybara APIを正しく使用するには、いくつかのコツがあります。 最初に適合するエレメントを見つける 悪い例 first(".active").click まだページに.active要素がない場合、firstはnilを返し、クリックは失敗します。 良い例 # 完全に一致するものが欲しい場合 find(".active").click # ただ単に最初の要素がほしいだけの場合 find(".active", match: :first
はじめに インターンのhmryuです。今週、Misocaのインターンを卒業しました。僕は、昨年のお盆明けから約7ヶ月間Misocaでエンジニアとして働いていました。とくに後半の4ヶ月は、発注機能の開発に関わっていました。 現在の発注機能では、複数のユーザーがコメントのやりとりやファイル共有を経て、発注できるしくみになっています。 もともと、発注機能のFeature Specでは、コメントや発注などを別々のsenarioで書いていましたが、それだと不必要に冗長な部分が増えてしまいコードの修正が難しくなっていました。そこで、1つのscenarioで発注機能全体をテストできるように大幅な修正を行いました。 (Controller Specについては、ミニマムリリースを意識していたらコードが肥大化していた話にまとめてあります。) マルチセッションのFeature Spec そこで問題になったのは、
お知らせ お待たせしました! 本日、2014年2月28日に「Everyday Rails - RSpecによるRailsテスト入門」の正式版をリリースしました。 以前からお伝えしているとおり、ベータ版を購入済みの方は無料で正式版にアップデートしていただけます。 もちろん、本日以降新規に購入された方は最初から正式版をダウンロードすることができます。 ご購入の際は以下のページにアクセスしてください。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 正式版の変更点 本書の変更履歴にも書いてありますが、正式版では以下のような点を変更しています。 「サンプル」の訳を「example」に変更。 「共有サンプル」の訳を「shared examples」に変更。 「テストの主語」となっていた箇所を「テストの対象」に変更。 訳者あとがき、日本語版の謝辞、および訳者
はじめに 以前から何度か紹介しているRSpec本の翻訳が終了し、ついに販売を開始しました! 提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFで、下記のページから購入できます。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 今回は改めてこの本の紹介を書いてみようと思います。 「Everyday Rails - RSpecによるRailsテスト入門」ってどんな本? 「Everyday Rails - RSpecによるRailsテスト入門 ~テスト駆動開発の習得に向けた実践的アプローチ~」はタイトルの通り、RSpecを使ったRailsの自動テストを説明した技術書です。 内容としては比較的易しめで、そこまで高度な話題は出てきません。なのでRSpecの未経験者~中級者かつ、Railsを使って開発している技術者がターゲット層にな
この記事には、Rubyを書いているときに「これは言語化されたり公式化されたりしていないけれど基本的には必ずこのパターンに則ってプログラムを書いているな」ということをふと思い出したときにやってきてそのパターンを書く。多分3パターンぐらいで終わると思う。ウケが良ければ思い出す確率が高くなると思う。題材さえあれば何も考えずに書けるので、これを書くコストは全然高くない。 名前が"?"で終わるメソッドは必ずtrueまたはfalseのどちらかを返す trueとfalse以外(例えばnil)が返る可能性がある場合は、必ず式の先頭に!!を付けてtrueかfalseになるようにしてる。 このパターンを守ることがとても大事だという風には全く考えていないけど、もしhas_user?がuserを返すとして、has_user?という名前のメソッドがUserオブジェクトを返すというのは一体どういう意味を持っているのだ
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0064 号 バックナンバー Rubyist Magazine 0064 号 Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist
2013年08月05日14:53 Ruby JavaScript Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 Rails4 でのエンドツーエンドなテスト環境を作ってみたのでメモです。 統合テストといえば Capybara さんなわけですが、デフォルトだと JavaScript を実行する際にドライバとして Selenium が使われてしまいます。 Selenium さん良い人なんですが、、、ブラウザが起動するので重いし、そもそも毎回ブラウザが起動する必要は無いのでヘッドレス(ブラウザの起動無しに JavaScript が実行できる)ドライバにしちゃいましょう。サヨナラ。 ヘッドレスドライバはいろいろあるんですが、最近は PhantomJS というライブラリが良いみたいなのでこれを使ってみます。Capybara から PhantomJ
社内で開催されたRSpec勉強会テストのパフォーマンスチューニングについて話したので資料を公開してみます。 RSpecの名は冠しているものの他の言語やテスティングフレームワークでも応用できるところがあるかもしれません。 RSpec Performance Turning from sue445 8/3追記:はてブコメント返信 テストのテストにはテスト対象を使えばいいんでしょうか。 場合によりますね。 基本的にはテストコードとテスト対象のプロダクトコードはペアであるはずなので、テストにバグが混入したとしても対応するテスト対象が変更されていなければテストがなんらかの形でエラーになるので、そこで検知できると思います。 テストコードのリファクタリング(共通処理をメソッド抽出など)は、既存のテストが品質を担保してくれてます(グリーンのままであればリファクタリング成功) 0からテスト書く場合でテストの
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く