タグ

ブックマーク / moro.hatenadiary.org (13)

  • ダミーWebサーバを作るライブラリ、wwをリリースしました - moroの日記

    近頃はWebAPIを使ったアプリケーションを作ることが増えていると思いますが、自動化テストからのWebAPIへのアクセスはどうやってますか? 私は、自分でstubしたりFakeWeb(レシピ先輩に教わった!!)を使ったりしてたんですが、イマイチしっくりこない部分がありました。で、Sinatraなぞで作ってたんですが、それをgemにまとめましたので、よろしければご利用ください。 http://github.com/moro/ww http://gemcutter.org/gems/ww 概要 ww(Double Web)はいわゆるDouble(mock, stub, spyなど)の機能を備えたダミーWebサーバを簡単に作るためのフレームワーク(笑)です。現状では、以下のようなことが出来ます。 他のAPIサーバを使う場合などに、簡単にダミーサーバを作る そのダミーサーバは自動化テストないから起

    ダミーWebサーバを作るライブラリ、wwをリリースしました - moroの日記
  • OSC2009 Tokyo/FallでCukeとRSpecの紹介をしました - moroの日記

    休んでいるうちにずいぶん時間が経ってしまいましたが、10/31のOSCにてお時間をいただき、Railsの昨今のテスト事情について紹介させていただきました。普段から申しているようにCucumberとRSpecをぐいっと推しています。 Rails testing environment, 2009 fallView more documents from Kyosuke MOROHASHI.あとはRSpec方面で、subjectやitsの使い方について、使いながら考えているようなことを書いています。 前にオブラブ方面でCuctomMatcherの話をしたときに、簡単なCustomMatcherを量産するのはだるいんじゃない?という懸念があったんですが、その一つの解としてits()はありかなー、と。使い分けはこんな風になると思います。 CustomMatcher作る 検証内容が複雑になるとき エ

    OSC2009 Tokyo/FallでCukeとRSpecの紹介をしました - moroの日記
  • Rails 2.1.1での関連とバリデーションの話 - moroの日記

    from http://d.hatena.ne.jp/mat_aki/20080921/1221970970 Rails 2.1.xでは関連を作った場合のバリデーションの挙動がいろいろ変わっています。で、ぎゃーと言う声を見かけたのでIRC相談してみました。私はどうもこういう使い方をしない癖がついていたらしく、あんまりはまりませんでした。 まとめると たしかにRails 2.1.1で挙動が変わっている 保存時に関連エンティティのバリデーションをするにはhas_many宣言なんかで:validateパラメータを指定する 関連の種類とvalidateパラメータのデフォルトは次の通り has_manyはデフォルトtrue has_oneはデフォルトfalse belongs_toもデフォルトfalse habtmは調べてないww 以下IRCのログを転載。松田さんおめでとうございます。 16:17

    Rails 2.1.1での関連とバリデーションの話 - moroの日記
  • オブジェクト倶楽部2009夏イベントで話しました - moroの日記

    オブジェクト倶楽部2009夏イベントの若人セッションでお話しする機会をいただきました。 タイトルは「プロジェクト特化言語 という夢を見たんだ」です。自然言語で仕様を記述できるCucumberと、英語ライクな書き方を目指す方向から徐々に方針転換を遂げつつあるRSpecという構図を見立て、対お客様/対開発メンバーというそれぞれのレイヤでのコミュニケーションツールとしてのテスティングフレームワークが云々という話をしました。CukeのstepとRSpecのCustomMatcherが大きなトピックです。あとは最近流行のsubjectについても少々。 TDD frameworks let me dream "Project Specific Language"View more presentations from Kyosuke Morohashi.少し前から話したかったことをいろいろ話せてすっき

    オブジェクト倶楽部2009夏イベントで話しました - moroの日記
    keisuke_yamane
    keisuke_yamane 2009/07/18
    RSpecとCucumber
  • ぼくが見ているレール(map.resouces編) - moroの日記

    先日のQConで大場さんもおっしゃっていたことですが、Railsで開発をする上でものすごく重要なポイントに、Railsの敷いたレールから降りないというのがあります。別にコレはRailsが不自由だというわけでなく*1、通り一遍のものしかできないというわけでもなく、ただ基盤と相性の悪い設計すればあとで苦労するという、当然の話なわけです。 最近、私を含めいろいろな方が「レールから降りないで作るのが重要」と話しています。が。じゃあそのレールはどこにあるのかという話はあまり聞かれません。ということで、ふだん私がRailsアプリを設計するときに意識しているレールを言語化してみて、議論なりのたたき台にしたいな、と思った次第です。 とはいえDB周りは「羽生さんのERDレッスン嫁」で7割くらい済む話*2なので、まずはコントローラから。 設計指針としてのmap.resouces Rails 2.xにおいて、コ

    ぼくが見ているレール(map.resouces編) - moroの日記
  • Railsテスティング環境2009新春 @仙台Ruby会議01 - moroの日記

    仙台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でオチの誤訳ふいた。書いてないことを読み取って感極まった勢いで

    Railsテスティング環境2009新春 @仙台Ruby会議01 - moroの日記
  • Cucumberのチーム内勉強会の動画が公開されました - moroの日記

    実はいま、縁あってRails製の企業向けSNS SKIPを開発しているSonicGardenの皆さんと一緒に仕事をしています*1。 で、チーム内の勉強会でCucumberについて話しました。そのときの動画が公開されました。ありがとうございます > 中の方々 http://blog.sonicgarden.jp/2008/12/techtalk-2008-11-13.html 資料というか、以下の記事は実はこの勉強会向けに書いたという意味合いもあったりします。 http://d.hatena.ne.jp/moro/20081112/1226486135 http://d.hatena.ne.jp/moro/20081118/1226977015 記事だけ読むよりもわかりやすい、ということでしたのでご興味のある方はぜひどうぞ。正味30分くらいです。 余談ですが、 いまのプロジェクトでは企業秘密

    Cucumberのチーム内勉強会の動画が公開されました - moroの日記
  • Webratがスゴい(続:Cucumberがアツい) - moroの日記

    Cucumberを使って、Railsアプリのテストを高い抽象度で書き進めていくために欠かせないのがWebratというライブラリです。前回のCucumber全体像の紹介に引き続き、こちらWebratを紹介します。今回も長いです。 2008-01-27修正 id:amacouさんから指摘を受けまして(と、たぶんsatokoさんも以前おっしゃってた)webrat_steps.rbの生成先パスを修正。 語: ${RAILS_ROOT}/step_definitions 正: ${RAILS_ROOT}/features/step_definitions ありがとうございます。 今回のまとめ Webratすごい 画面遷移を「リンクをクリックする」「ボタンをクリックする」と書ける リンクのアンカーテキストではまだ日語が使えず。さきほどパッチ送ったので早晩書けるようになるはず。 フォームの入力項目もラ

    Webratがスゴい(続:Cucumberがアツい) - moroの日記
  • Cucumberがアツい - moroの日記

    仕事で作っている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

    Cucumberがアツい - moroの日記
  • RailsでJavaScriptをもりもり書くときのユーティリティメソッド - moroの日記

    RailsでもりもりJSを書くときには、ちょっと問題というか面倒なところがあります。 ERbやhamlの中にインラインで書いていく場合 あとでそれを静的なファイルに切り出したくなる エディタが馬鹿になる(とりあえずvimは使いづらい) はじめから静的なファイルに切り出す場合 mongrelがmtimeのキャッシュをなぜか変に保存していて再読み込みされないことがあった気がする。昔。 ということでこんなの。 開発中(Rails.env == "development")だとファイルの中身をインライン展開、それ以外のモードではscriptタグができます。 Railsがデフォルトで提供するのはjavascript_include_tagで。自分で書いたスクリプトはこの_fileを使うとうれしい感じになるかと。 = javascript_include_tag :defaults = javascr

    RailsでJavaScriptをもりもり書くときのユーティリティメソッド - moroの日記
  • Railsのエラー画面に出るデバッグ情報を他所でも表示する - moroの日記

    こんな感じで。 <% if Rails.env == "development" %> <div id="session"> <% @exception ||= Struct.new(:blamed_files).new([]) %> <%= render :file=>("/"+ActionController::Base.new.send(:rescues_path, "_request_and_response")) %> </div> <% end %> app/views/layout/application.htm.erbなんかに入れておくといい感じかもしれません。けっこう無理矢理ですのでもっとかっこいいのが欲しいですが。 sendどうよ、と思うのですが、Rails.env=="development"の時だけなので見逃して欲しいなぁ < app下でのリフレクションを減らす運動

    Railsのエラー画面に出るデバッグ情報を他所でも表示する - moroの日記
  • Ruby on Rails Code Quality Checklist抄訳 - moroの日記

    オレンジニュース経由でこんなものを見かけました。 Ruby on Rails Code Quality Checklist これはいいチェックリスト。あとだしジャンケンぽいですが、私がいつも思っていることがいろいろ書いてあってすばらしいです。これをすべてYesにするのは難しいというか机上の空論ぽいところもありますが、これを目指すことには価値はあると思います。 ということで項目だけを抄訳(&地の文は私感)を書いてみます。誤訳などがあればツッコミお待ちしています。 コントローラのアクションではfindやnew以外のモデルメソッドは一つくらいにしなさい(必要なら.newや.updateメソッドをオーバーライドするといい)。 原文: 1. Each controller action only calls one model method other than an initial find or

    Ruby on Rails Code Quality Checklist抄訳 - moroの日記
  • Rails2.0とRails1.2を共存させる方法 - moroの日記

    というかコマンド付きのgemを複数バージョンを共存させる方法。 コマンドの第一引数に_【バージョン】_を渡します。 $ rails _1.2.6_ -v Rails 1.2.6 $ rails _2.0.2_ -v Rails 2.0.2Railsの場合はrailsコマンドでアプリの外枠を作ってしまえば、それ以降はこの指定は必要ない(config/environment.rbでRAILS_GEM_VERSIONしてるので)。ということでRails自体は1.2.6から勉強したい(参考書も多いし)けど、たまには2.0系のコードも読んでみたい、という人なんかはこうするとよいかと。 もっとちゃんと知りたいという人は、gemで入れるとコマンドがこうなるということを知っておけばOK。で require 'rubygems' version = ">= 0" if ARGV.first =~ /^_(.

    Rails2.0とRails1.2を共存させる方法 - moroの日記
  • 1