日々の出来事、メンバーの働く様子や声、未来への想いなど、Supershipの“BE SUPER”なストーリーをシェアしています。

前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとして、RSpecを使ってコントローラのテストを作成します 前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとしてRSpecを使ってコントローラのテスト(RSpecのテストコードは“スペック”と呼ばれるので、以降はスペックと呼びます)を作成します。本稿で紹介するスペックの全文はGitHub上にあります。 最初に、コードレビューの回で述べたコントローラの役割についてもう一度おさらいしてみましょう。 コントローラは外部から来たリクエストを受け付け、レスポンスを返すのが役割です。具体的には以下の3つの動作をおこないます。 適切なオブジェクトをとってくる オブジェクトに対する何らかの操作を指示する 操作が成功した際と失敗した際のビューの振る舞いを指定する
Ruby (Rails) でテストカバレッジといえば Rcov ですね。 しかし Rcov は Ruby 1.9.x に非対応なので Ruby 1.9.2 + Rails3 な環境で開発をしている方は SimpleCov を使うと幸せになれます。名前にSimpleと付いていますが高機能で見た目も綺麗です。また simplecov-rcov を併用すれば Rcov のフォーマットで出力することも出来るので、Jenkins などのCIツールとの連携も難しくないはずです。 colszowka/simplecov – GitHub fguillen/simplecov-rcov – GitHub 使い方# Gemfileに下記コードを追加してbundle installします。
前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、テストを使ったリファクタリングについて解説していきます 少し時間が空いてしまいましたが、前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、そのWebアプリに対してテストを書いてリファクタリングする具体的な方法について解説していきます。 今回はまず、Ruby on Railsで人気のあるテストフレームワークの数々についてご紹介します。 最近のテストフレームワークトレンド Hamlの作者として知られるHampton Catlin氏が行った「Hampton's Third Ruby Survey, 2010」の中に、テストに関するいくつかの興味深い結果があります。好きなテストフレームワークは何ですかという質問に対する答えをグラフにすると以下の通りです。 これを見ると「ビヘイビア駆動開発(
Rails テストで便利であるにもかかわらず知名度の低い、かわいそうな 2 つのタスク: rake test:recent タスク rake test:uncommitted タスク を紹介します。この記事は執筆時点の Rails 3.1.0.rc5 を対象としています。 Rails 謹製のテストタスク: rake test:* RSpec 使っていますか? もはや「デファクトスタンダードとなりつつある *1」 RSpec ですが、残念なことに私は使っていません。でも。そんな Test::Unit 遣いのために、Rails は便利な rake タスクを用意しています。たとえば、 rake test rake test:units rake test:functionals rake test:integration の各タスクは RailsによるアジャイルWebアプリケーション開発 第3版
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
ちょっと大げさなタイトルかもしれないですが、個人的にはそれぐらいの感動。「これで勝つる!」な気分。何に勝つのか知らないけれど。 今までのRailsのテストはもっぱらRSpecで書いてて、確かにこれはこれで素晴らしい。採用当初はバグが減ってその時も「これで勝つる!」な気分でした。でもやっぱり受け入れテストがネックになるんですよね。Seleniumとかも使ったりしてましたけど、ブラウザががちゃがちゃ動くし、なんとなく面倒で結局手動で確認という感じになってしまいました。 そこでCucumberの登場ですよ。個人的に素晴しいと思うのは テストケースが自然文(っぽい) そんなに邪魔じゃない あたりかなぁ。テストケースが自然文っぽいというのは実はかなり大事で例えば お客さん: まずトップページにアクセスするとログインフォームがあって、そこにログインすると「ようこそ!ほげほげさん」と出すようにして欲しい
仙台Ruby会議01で、Cucumberを用いた今流行のRailsテスティング環境について話しました。 2009-01-25追記 どうもSlidesareで公開したスライドがうまく表示されませんので、いったん埋め込みは削除しました。 スライドのダウンロードはできるようですが、とりあえずDropboxでも落とせるようにしておきます。 http://dl.getdropbox.com/u/108726/rails-testing-env-early-2009.pdf スライドに興味のある方は、お手数ですが、こちらのPDFをご覧ください。もうちょっと他の人のマシンなんかでも試してみます。 追記ここまで ここから元エントリ 今回はustでの見辛さを考慮して、話す前にSlideshareにあげてたでござる。いかがでしたでしょうか? IRCでオチの誤訳ふいた。書いてないことを読み取って感極まった勢いで
Cucumberを使って、Railsアプリのテストを高い抽象度で書き進めていくために欠かせないのがWebratというライブラリです。前回のCucumber全体像の紹介に引き続き、こちらWebratを紹介します。今回も長いです。 2008-01-27修正 id:amacouさんから指摘を受けまして(と、たぶんsatokoさんも以前おっしゃってた)webrat_steps.rbの生成先パスを修正。 語: ${RAILS_ROOT}/step_definitions 正: ${RAILS_ROOT}/features/step_definitions ありがとうございます。 今回のまとめ Webratすごい 画面遷移を「リンクをクリックする」「ボタンをクリックする」と書ける リンクのアンカーテキストではまだ日本語が使えず。さきほどパッチ送ったので早晩書けるようになるはず。 フォームの入力項目もラ
仕事で作っているRailsアプリにCucumberを突っ込んでみました。これは熱い。いやもう十分、お客さんに見せて分かってもらえる気がします。たぶん。もちろん準備は必要だし、受け入れ仕様をすべてお客さんに書いてもらうというのは難しいですけど*1。 とりあえず導入はこちらから。最近はNokogiriが必要です。あとTerminal.appで--no-colorつけずに実行するとTerminal.appがひどいことになるのでiTermお薦めです。 http://github.com/aslakhellesoy/cucumber/wikis/ruby-on-rails 2010-11-10 SEO的に。この記事を書いてから2年、いろんなCucumberの使い方を調べました。そのノウハウを達人出版会にて本にまとめました。よろしければこちらもどうぞ。 http://tatsu-zine.com/bo
This document discusses Behavior Driven Development (BDD) with Cucumber. It provides an example feature file for adding movies to a Netflix queue. It then demonstrates how to install and use Cucumber, including defining step definitions and integrating it with Rails. The document concludes that Cucumber allows specifying and testing software behavior through plain language examples.
RSpecを使ったテストコードを読もう:Railsコードリーディング~scaffoldのその先へ~(2)(1/4 ページ) 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) 第1回「コードリーディングを始めよう」では、Railsアプリケーションの基本であるCRUDのソースコードを読解しました。最低限の基本の動きということで、ディレクトリ構造の説明すら割愛していたので、今回はディレクトリ構造の解説から行います。その後、今回のメインテーマであるテストコードのコードリーディングに入っていきます。 ここで扱うテストコードというのは、Javaの世界でいうとJUnitを使ったテストコードと同じ粒度、つまり、単体テストに近い粒度のテストケースを動くプログラムで表したものになります。Javaの開発者にとってのJ
テストの作業は嫌われる場合が多い。確かにそれ程生産的には見えないかも知れない。が、リリース後の負荷を減らすためにも欠かすことのできない作業だ。多少なりとも楽をして、的確にテストを行っていきたい。 Webベースのブラウザテストを行うのにSeleniumは最適な選択だ。そしてRails使いであればこのようなソフトウェアもある。 今回紹介するオープンソース・ソフトウェアはSelenium on Rails、Railsプラグインで提供されるSeleniumだ。 Selenium on Railsはscript/pluginを使ってインストールできるSeleniumで、インストール後はgenerateを使ってテストを生成できる。後はそこにテストケースを記述していけば良い。実際の利用はtestで動作させて、「http://localhost:3000/selenium/」で動作する。 Selenium
Ruby on Railsでの開発では、その規模の大小問わず、短期的・長期的問わず、最低限の品質を確保するためにテストコードの作成と自動化は「必ず」行うべきである、という考えを僕は持っている。つまり、テストコードのないRailsの成果物は、非常識きわまりなく、構造計算が一切行われていない建物と一緒。もしそんな開発プロジェクトがあれば、それは国会で取り上げられる程の騒ぎにならなければいけない事態であり、IT業界からご退場願わなければならない、と思っている。 さて、RoRでは、常に「自分がテストにどれくらい関わったのか」という指標を確認できるように、rake statsというタスクが標準で提供されている。これにより、実装コード行数とテストコード行数の割合がサクッと出てくる。もちろんカバレッジ率ではなく、総行数に関する指標であるので、あくまで参考値ではあるが、それを意識するのとしないのとでは大違
[rails plugin] javascript_test - script.aculo.usのunittest.jsでTDD&BDD JavaScript Rails 2008-01-06 via Dr Nic - Autotesting Javascript in Rails script.aculo.usのunittest.jsを使ったRailsプラグインの javascript_test なかなか良さそう。generatorでテストのひな形作成、auto_testに対応してくれる。unittest.js単体もBDD的な記述、ベンチマーク、辺りが良い。 #インストール ruby script/plugin install javascript_test mkdir test/javascript ln -s vendor/plugins/javascript_test/assets
あけましておめでとうございます。今年もよろしくお願いいたします。 2008年の最初のエントリは、新年の挨拶もほどほどに、この冬休みの宿題の1つの成果報告をしてみよう。4つほどあった宿題だが、結果が出たのは1つのみである。なんとも情けない。。。 さて、昨年さんざん騒がれたRuby on Railsだが、「Javaな感覚」でRailsアプリを作ると、それはすなわち「Java以上の失敗プロジェクト」になる。「Javaな感覚」とは、つまり、コンパイラの存在。Javaにおいて、コンパイラが行ってくれる文法チェックやクラス間の依存性検証は、プログラマに対して非常に大きな安心感を与える。もっと言えば、非常に低いレベルとは言え、単体テストコードがなくても、コンパイラがあればなんとかリファクタリングができてしまうことも多いだろう。 しかし、Rubyにはコンパイラなどない。Railsの場合、プログラマがどこで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く