帰ってきた日本cucumberの会 (忘年会)

cucumberに欲しい機能を語り、食べて、そして実装する

  • RSS
日時 / DATE :
2009/11/29 13:00 to 18:00
定員 / LIMIT :
10 人
会場 / PLACE :
ルノアール貸会議室 (山の手内(調整中))
URL / URL :
-
管理者 / ADMIN :
Default 舞波

日程が変更されました


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


RailsRuby用のWebアプリケーションフレームワーク
MerbRailsの機能を減らさずにコードと仕様を極力シンプルにしたフレームワーク
Sinatra1ファイルで実行可能なWebアプリケーションを作れる軽量なフレームワーク
AR(ActiveRecord)Rails内で利用されるORM
DM(DataMapper)Merbが利用するデフォルトのORM
RSpecBDDなテストフレームワーク
BaconRSpecの軽量クローン
Cucumber自然言語に近い形式で仕様を記述できるテストツール。内部でRSpecを利用する
FactoryGirlテスト用オブジェクト作成ツール
RR(double ruby)mockフレームワーク。強力だが検索し辛い。RSpecと併用可
MachinistFactoryGirlのrewrite。syntaxの表記が優れている(作者談)
Shamstubツール。Machinist内から利用される
Fakerそれっぽいデータを機械生成するツール。名前(英語)、住所(英語)、TEL、メアド、、、
Blankslateメソッドを持たないRubyオブジェクトを作るツール(class)。method_missing命。黒魔術の生成機

glossary_steps


BDD(Behavior Driven Development)「まず仕様ありきでそれがテストになる」という宗教
fixture繰り返し使えるテストデータの集合
stub実装を与える事
mock実装と仕様を与える事
cukeCucumberの愛称
シナリオcuke内の1テストの呼称
シナリオテンプレートシナリオを繰り返し利用するときの雛形
ORMDBを簡単に扱うツール。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

Wwwhatenanejp t-wada - (2009/11/26 20:06)  

すみません…

Default 舞波 - (2009/11/29 00:06)  

昼ご飯は各自で済ませて現地集合する方向で。店舗は決まり次第ここに書きます。(秋葉、四ッ谷、銀座の優先度で予約してみます)

Default lchin - (2009/11/29 00:57)  

参加できないけど、最近フィードリーダで読んだやつ:
* 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

Wwwgooglecom a_matsuda - (2009/11/29 08:51)  

うわー。callbackイイ!これでかなり実用的になった感じですね。Thanks for the info! > lchin

Default 舞波 - (2009/11/29 11:09)  

遅くなりました。ルノアール(ニュー秋葉原店)を13-17時で予約入れました。高架下の方の店です。「ニシ」で予約しています。
東京都千代田区外神田1-16-10 ニュー秋葉原センタービル地下1階 (03-3251-0210)
http://www.ginza-renoir.co.jp/myspace/mys048.htm

Default takiuchi - (2009/11/29 11:54)  

原稿を書きまくります

Default 舞波 - (2009/11/29 14:03)  

すいません。ルノアールはネットが繋がらないので場所を変更します。浜松町の yamaz オフィスで。浜松町駅か大門駅(こっちが近い)に到着したら連絡下さい。迎えに行きます。

コメントを投稿するには、ログインしてください。

掲載されるイベント情報は、利用者の皆様によりご提供いただくものであり、株式会社リクルートは本情報の正確性や内容について、一切保証するものではございません。詳しくは利用規約をご参照ください。