1/30に行った、Thrive on development 勉強会で使用したスライドです。 RSpecの使い方と、振る舞い中心のUnitTestのやり方について言及しています。Read less
![RSpecのここがすごい!](https://cdn-ak-scissors.b.st-hatena.com/image/square/ceaa63e8898b8baf7b61a81c1b1ee099a27824ff/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Frspecshock-100207033139-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, :js_errors => false, :timeout => 60) end とすればよいとわかった。各オプションについて以下に説明する。 :js_errors :js_errors => falseにしたのはCapybara::Poltergeist::JavascriptError: というエラーを防ぐため。JSのエラーはよくあることなのだが、エラーが出るたびにCapybaraを止めるのは時間の無駄。ということで、JSのエラーは無視することにした。 :timeout Timeoutはデフォルトでは30秒。しかし、ログインのような時
前回はRSpecの基本メソッドについてまとめました。今回はMockについてまとめます。 テストダブルとは テスト対象が依存しているモジュールやリソースの代役のこと。結合テストのような複雑な環境を事前に用意せずとも目的の機能をテスト可能となるように振る舞いをシミュレートする。 irb,pry等でMockを試したい時、
Ruby on Railsプログラマーのための「RSpec/Capybara入門」を連載します。Railsを学習中の初心者がテスト駆動開発(TDD)あるいはビヘイビア駆動開発(BDD)を実践するための基礎的な知識や考え方を説明していきます。 メインテーマはRSpecとCapybaraですが、factory_girl、Database Cleaner、Zeusなどの関連するGemパッケージも途中で紹介していく予定です。また、CSSセレクタやXPathについても簡単に解説することになるでしょう。 いちおうRubyとRailsの基礎知識を話の前提としますが、初心者を念頭に置いて丁寧な説明を心がけます。 できるかぎり具体的にコーディングと操作手順を示すつもりです。実際に手を動かしながら読み進めると、より理解が深まるでしょう。 記事一覧 イントロダクション (2013/08/14) RSpec/Ca
Rspec/Capybara/Turnipの入門記事を全力でまとめてみた Aug 30th, 2013 Tweet さっき、『 The Rspec Book』を読み終えました。厚めの本ですが、RspecやCucumber、Webrat、Seleniumなどを活用するためのノウハウ満載で大満足でした! ということで、この本で読んだ内容を忘れないようにするためと、その過程でRspec/Capybaraなどのネット資料をあつめたので、まとめるためにこの記事を書きます。もし、間違いを発見した場合や他にもいいリソースがあれば、是非メッセージを願いします! テスト駆動開発(TDD)と振る舞い駆動開発(BDD) テスト駆動開発(TDD)とは、コードを書く際に最初にテストを書き、次にテストが通る最低限のコードを書き、その後にリファクタリングしていく開発手法です。一方で振る舞い駆動開発(BDD)はTDDの発
Jeff Kreeftmeijerさんの "Fuubar: the instafailing RSpec progress bar formatter" を翻訳しました。 元記事はこちら: http://jeffkreeftmeijer.com/2010/fuubar-the-instafailing-rspec-progress-bar-formatter/ (翻訳の公開と画像の利用は本人より許諾済みです) Jeffさんのひとつ前のRSpecの記事もよろしければどうぞ。 【翻訳】RSpecでテストが失敗したら即停止して結果を出力 翻訳の間違い等があればブログコメントやTwitterなどで遠慮無くご指摘ください。 Fuubar: instafailing な RSpec プログレスバーフォーマッタ 気づいたかもしれないけど、私はここ一週間ほど RSpec でテストスイートをより良く・より速
2013年08月05日14:53 Ruby JavaScript Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 Rails4 でのエンドツーエンドなテスト環境を作ってみたのでメモです。 統合テストといえば Capybara さんなわけですが、デフォルトだと JavaScript を実行する際にドライバとして Selenium が使われてしまいます。 Selenium さん良い人なんですが、、、ブラウザが起動するので重いし、そもそも毎回ブラウザが起動する必要は無いのでヘッドレス(ブラウザの起動無しに JavaScript が実行できる)ドライバにしちゃいましょう。サヨナラ。 ヘッドレスドライバはいろいろあるんですが、最近は PhantomJS というライブラリが良いみたいなのでこれを使ってみます。Capybara から PhantomJ
Myron Marston » The Plan for RSpec 3の微妙訳です。(翻訳最中なう)だいたい翻訳しました。訳がうんこなのは勘弁(ご指摘いただけると助かります)。 2013/7/23 21:25 id:kakutani さんのツッコミをもとに、誤訳等を修正しました。ありがとうございます(〃・ิ‿・ิ)ゞ RSpec 3に向けての計画 RSpec 2.0は2010年10月にリリースされました。 リリースされてから今までの3年間、後方互換性を保ったままRSpecを継続的に改善してきました。 しかし、RSpecの2.xより古いリリースとの後方互換性を保つために残しているひどいコードの蓄積は限界点に達しています。 RSpec 2.14はRSpec 2の最後のリリースになるでしょう(今後も多分bugfixのリリースすることはあるでしょう)。 我々はRSpec 3に取り掛かっています、
これは下北沢オープンソースカフェで開かれているiOSの勉強会 iOS部での発表資料を兼ねています。 iOS部のリンクはこちら、https://www.facebook.com/events/578494952182260/ Appiumとは SeleniumIDEベースの Google製のNativeDriver ライクなもの 動作から受け入れテストを自動実行することができる シミュレータと、本体(だったはず)でテストが可能 iOSのNativeDriverはiOS4で開発が止まっている 実質 テストで書ける言語は以下 Java Javascript(Node) php python Ruby(Rspec) Rubyでテストが書ける! Rubyでテストが書ける!!!1 Rubyで書く場合は、SeleniumのRubyのラッパを踏襲しているようだ https://code.google.co
まとめ sidekiqを2つのRailsアプリケーションで使ってみて、テストの書き方と残し方について思うところがあったので書いてみます。 特別な事情がなければsidekiq/testingを使うべき(sidekiq/testing/inlineは使わない) 非同期処理そのもののユニットテストはMyWorker.new.performで書けばよい 非同期処理をキックする側のユニットテストはMyWorker.jobs.sizeを検証するだけにする エンドツーエンドテストでは「全ての非同期ジョブを実行する」というようなstepやメソッドを作ってそれを呼ぶ sidekiq/testingとsidekiq/testing/inlineについて sidekiqのwikiには、テストのための仕組みとしてsidekiq/testingとsidekiq/testing/inlineの2つがあり、**「どちら
Selenium2 WebDriverを使ってRSpec形式で受け入れテストを自動化する方法を模索中です。 これまで調べたこと 環境構築編:Windows7+Selenium2 WebDriver+Rspecでブラウザテストを自動化 TIPS編:Ruby+Selenium2 WebDriverでクロスブラウザチェックする 基本的な検証方法 今回はテストケース内で値をどう検証するかを調べてみました。JUnitとかだとassertTrueみたいなメソッドが用意されていますが、画面の場合は HTML内の値を見つけだし その値を検証する というステップを踏む必要があります。値を見つけ出すところは https://gist.github.com/daipresents/b211d3a3cf47908e87f0766f846bd73d.js?file=gistfile1.txt のようにすれば見つかり
前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとして、RSpecを使ってコントローラのテストを作成します 前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとしてRSpecを使ってコントローラのテスト(RSpecのテストコードは“スペック”と呼ばれるので、以降はスペックと呼びます)を作成します。本稿で紹介するスペックの全文はGitHub上にあります。 最初に、コードレビューの回で述べたコントローラの役割についてもう一度おさらいしてみましょう。 コントローラは外部から来たリクエストを受け付け、レスポンスを返すのが役割です。具体的には以下の3つの動作をおこないます。 適切なオブジェクトをとってくる オブジェクトに対する何らかの操作を指示する 操作が成功した際と失敗した際のビューの振る舞いを指定する
Vimにはtextmateちっくなsnippet補完を実現するためのプラグインがいくつかあります。 neocomplcache-snippets-complete, snipMate, UltiSnipなどなど。 私が利用しているのは、neocomplcache-snippets-completeなので、それを利用する時の流れについての話です。 neocomplecacheを使っていると、補完が統合されるので、neocomplecacheユーザーは大体これに落ち着くと思います。 ちょっと調べたところだと、UltiSnipはかなり高機能っぽいのですが、pythonインターフェースが必要で、ちょっと複雑過ぎるかもしれません。 読み込みのルール 現在のneocomplecacheは、内部でvimのバッファが持っているファイルタイプとは別に、 独自のファイルタイプ情報を持っています。 最近になって
追記 ここに書いてあることを実現する serverspec という gem をつくりました。詳しくはこちらのエントリで。 Puppet マニフェストをリファクタリングするからテスト書くぞ、ってことで、 puppet-lxc-test-box に書いたように、テストするためのシステムコンテナを簡単に作る仕組みをつくったので、今度は実際にテストコードを書くためのベースをつくってみた。 rspec-lxc-test-box こんな感じでテストが書ける。 require 'container_spec_helper' describe 'nrpe' do it { should be_installed } it { should be_enabled } it { should be_running } end describe 'nagios-plugins-all' do it { shou
Rails3.2/GitHub/Pivotalという割とモダンな環境で2ヶ月間開発してました。その契約期間が終了したので、振り返ってみます。 Gems 自分の担当で、初めて(本格的に)使ったGemたち no title 帳票PDF出力 no title PDF解析(テスト用) no title Zip圧縮 no title ユーザー認証 no title HTML加工 no title 検索フォーム補助 no title よりよいフィクスチャ no title RSpecマッチャ拡張 no title 並列テスト no title プログレスバー型RSpecフォーマッタ 日に日にテスト実行時間が長くなっていて、どうにかしたいと思って最終日に探してすぐ導入したParallel testsが印象的です。 Retrospection ひとり開発でやっていたことが活かせた Railsは経験の蓄積が
というわけでKonachaです。https://github.com/jfirebaugh/konacha なにこれ、粉茶? JavascriptのテスティングフレームワークとしてはJasmineやらMochaあたりがメジャーどころのようだけど、セットアップが難しかったりして「これだ!」というものがなかった。個人的には。 で、今回、よーし、お父さんCoffeeScript書いちゃうぞー!というタイミングにあたって、もう一回いろいろ探してみたところ、これが一番スジがいいっぽかった。 KonachaはRailsでMochaとchaiを使いやすくしたGemらしい。Mochaとchaiは使ったことなかったけど、公式を5秒ほどみたところ、nodeでうごくrspecライクなテスティングフレームワークということでJasmineとかとあんまかわらないんじゃないかと推測。chaiはマッチャーのライブラリのよ
Rails application preloader といえば spork や zeus を使っている人もいるかと思います。 今後、期待できる preloader として spring を教えてもらいました。 springはzeusと類似していますが、springはrubyで実装されています。Railsに綿密に統合されているのが他のプリローダーと比較すると大きな特徴です。 Railsコミッターが開発していることからも、今後期待できるpreloaderです。 インストールGemfileにspringを追加します。 group :development, :test do gem 'spring' end$ bundleこれでgemが導入されます。 利用方法springの簡単な使い方です。 $ bundle exec spring Usage: spring COMMAND [ARGS] T
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く