- 日時 / DATE :
- 2009/11/29 13:00 to 18:00
- 定員 / LIMIT :
- 10 人
- 会場 / PLACE :
- ルノアール貸会議室 (山の手内(調整中))
- URL / URL :
- -
- 管理者 / ADMIN :
舞波
日程が変更されました
cucumber を愛する人達による忘年会です
features
Given
- cucumberが好き
- FactoryGirlが好き
- mockが好き
- fixtureが好き
- テスト方法を模索している
When
- 参加者が集まり
- ピザを食べながら語る
Then
- 何かが見える
world
- 10人くらい入れる
- ホワイトボードがある
- 飲食可。持ち込み可(望ましい)
- ネット完備(望ましい)
- 美味しいコーヒー(望ましい、近所可)
- 美味しいピザ(望ましい、近所可)
steps
subject_steps
- シナリオテンプレートの2重ループ
- テーブルの表記法をどうするのか?
- 2重でいいのか?無限nestedがよくないか?
- テストデータはどう準備する?
- FactoryGirlは銀の矢なのか?
- fixtureの復権はあるのか?
- mockから自動でレコードを作るのはどうか
- FactoryGirlなARオブジェの関連先(all)はどうする?
- RR の method chain 力はその辺で猛威を振るうはず
- mockは実装変更の影響を強く受け過ぎる気ガス
- Modelにカラム追加で全テストのGivenを変更?
- FactoryGirlの継承機能を使うですよ
- Machinistはどうなの?使った人いる?
- mock framework は RR で FA?
- and_returnとか書くのが平気な人はJavaしてよし
- 参照先を意識してmockを増やし続けるのに疲れたから俺fixtureに戻るよ
- RR いいよね
- RRのinstance_of最強
- rspecにもなかった?
- rspecのはmatcherで RR のはインスタンスへのメソッド追加
- stub/mockはblankslateなので注意ね
- method missing方式の定義なので AR の黒魔術と相性が悪い
- 1回目は動くけど2回目やfileの順番で動かなかったり
- RR vs AR の method 争奪黒魔術合戦
- blankslateは1.8にバックポートして欲しい
- overloadできるの何気に凄くない?→ rrr作りました[github]
- cucumber遅くない?
- parserが遅いので速い奴にrewriteする計画はある(本家)
- てかfixtureが遅くね?
- DBに毎回追加するのが遅い
- 遅いけどRailsのはMerb+DMよりはマシ
- Merb+DMは1テスト毎にdb migrateする池沼設計
- マシだけど、マスターデータが100万件あるとspecファイル単位でも辛いっす
- マスターデータとトランザクションデータは分ける設定欲しい
- トランザクションデータだけ毎回入れ直しで、マスタは触らない
- spork使ったことある人?
- rspactorもいいかも [github]
- Baconはどう?
- なにそれ?検索し辛い
- a small RSpec clone [github]
- dkubbがDataMapperでrspec使うのやめてbacon宣言してた
- 1ファイルなのか!
- 足りない機能もあるけど小さくていいかもね
- Railsに対するSinatraみたく棲み分けできそう
tool_steps
| Rails | Ruby用のWebアプリケーションフレームワーク |
| Merb | Railsの機能を減らさずにコードと仕様を極力シンプルにしたフレームワーク |
| Sinatra | 1ファイルで実行可能なWebアプリケーションを作れる軽量なフレームワーク |
| AR(ActiveRecord) | Rails内で利用されるORM |
| DM(DataMapper) | Merbが利用するデフォルトのORM |
| RSpec | BDDなテストフレームワーク |
| Bacon | RSpecの軽量クローン |
| Cucumber | 自然言語に近い形式で仕様を記述できるテストツール。内部でRSpecを利用する |
| FactoryGirl | テスト用オブジェクト作成ツール |
| RR(double ruby) | mockフレームワーク。強力だが検索し辛い。RSpecと併用可 |
| Machinist | FactoryGirlのrewrite。syntaxの表記が優れている(作者談) |
| Sham | stubツール。Machinist内から利用される |
| Faker | それっぽいデータを機械生成するツール。名前(英語)、住所(英語)、TEL、メアド、、、 |
| Blankslate | メソッドを持たないRubyオブジェクトを作るツール(class)。method_missing命。黒魔術の生成機 |
glossary_steps
| BDD(Behavior Driven Development) | 「まず仕様ありきでそれがテストになる」という宗教 |
| fixture | 繰り返し使えるテストデータの集合 |
| stub | 実装を与える事 |
| mock | 実装と仕様を与える事 |
| cuke | Cucumberの愛称 |
| シナリオ | cuke内の1テストの呼称 |
| シナリオテンプレート | シナリオを繰り返し利用するときの雛形 |
| ORM | DBを簡単に扱うツール。1行を1オブジェクトとして扱う |
| wycats(Yehuda Katz) | Merbの双璧メンテナの1人。Rails3のメイン開発者。話がわかるいい人 |
| dkubb(Dan Kubb) | DMの筆頭メンテナ。やや肥満 |
| dhh(David Heinemeier Hansson) | Rails教の教祖。最近フェラーリを購入。今回の話には出てこない |
参考
議事録
- FactoryGirl
- ARのインスタンスを動的に作ることができる
- fixtureと違って、カラムのデータを動的な値にしたりとか
- fixtureでもerb書けるじゃん
- fixtureでも関連使えるようになったし
- baseを作っておいて変更できる
- データを継承して作れるのがメリット
- valiationが豊富なデータを奇麗に短くかける
- クラス名は自動推測可能
- mockでやると何が違うの?
- 実際にDBにレコードとして登録されるので安心
- で、Machinistはどう違うの?
- ObjectDaddyてのもあるよ
- windowsのgitクライアントはgit bashが便利
- Factory.define :xxx の名前衝突問題
- Factory.define :xxx, :parent=>... で継承元を指定できる
- Machinistの方がシンタックスはよさげ
- blueprintはshamと裏でつるんでいる
- shamで該当attrを定義してないとエラー
- Machinistは継承できない?
- シナリオテンプレートの2重ループ
- 同期:FITぽく
- 表記:Matrix(行列)ktkr!!
- CSS3はやくこい
- IE6いってよし
- 使えるのは、Safari,FF3.5,Chrome
- 何が嬉しいの?
- selector(evenとか)
- layout(段組みとか)
- deployツールは何がおすすめ?
- Vlad(Vlad the Deployer)
- レシピぽいものはあるが、capファイルが不要で rake ファイルに直接書くので、rake のパワーをそのまま使える
- ruby の ssh 実装を使わずに素直に scp 外部コマンドを使っている
- debug は大変
- cap の方が踏み台設定もできるからいい気がするよ
- cap はチートシートがないと何もできない
- 英語として読みやすいのを目指したのがrspec
- Rubyとして読みやすいのを目指したのがrr
掲載されるイベント情報は、利用者の皆様によりご提供いただくものであり、株式会社リクルートは本情報の正確性や内容について、一切保証するものではございません。詳しくは利用規約をご参照ください。




すみません…
昼ご飯は各自で済ませて現地集合する方向で。店舗は決まり次第ここに書きます。(秋葉、四ッ谷、銀座の優先度で予約してみます)
参加できないけど、最近フィードリーダで読んだやつ:
* Factory Girlにコールバックが登場 http://robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl * WebMockというHTTPのリクエストをstub/mockできるライブラリ: http://blog.new-bamboo.co.uk/2009/11/24/stubbing-and-setting-expectations-on-http-reques
うわー。callbackイイ!これでかなり実用的になった感じですね。Thanks for the info! > lchin
遅くなりました。ルノアール(ニュー秋葉原店)を13-17時で予約入れました。高架下の方の店です。「ニシ」で予約しています。
東京都千代田区外神田1-16-10 ニュー秋葉原センタービル地下1階 (03-3251-0210)
http://www.ginza-renoir.co.jp/myspace/mys048.htm
原稿を書きまくります
すいません。ルノアールはネットが繋がらないので場所を変更します。浜松町の yamaz オフィスで。浜松町駅か大門駅(こっちが近い)に到着したら連絡下さい。迎えに行きます。