タグ

TDDとrubyに関するt-wadaのブックマーク (14)

  • 私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ

    私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。 設計する describe を書く itを書く subjectを明確にする before(context)を明確にする その他に、気をつけている点はこんな感じ 別のメソッド呼ぶ時は基的にstubなどで潰す contextは「〜の場合」、it は「〜であること」になるようにする 一つずつ、詳細を書きます。 設計する テストを書き始める前に、まず実装しようとしてるクラス、メソッドを簡単に設計します。 少なくとも、「クラス名」「クラスメソッド or インスタンスメソッド」「メソッド名」「メソッドの戻り値」ぐらいは決めます。 describe を

    私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ
    t-wada
    t-wada 2012/08/21
    とてもよい!
  • RSpecによるユニットテストの書き方 — recompile.net

    2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと

    RSpecによるユニットテストの書き方 — recompile.net
    t-wada
    t-wada 2012/04/19
    RSpec のコードの書き方のテンプレートの良いエントリ。私も大体似た感じの構造 (describe - context - describe - context) で書いています(ちなみに内側の describe は短く # から始めます)。
  • RSpec の入門とその一歩先へ、第2イテレーション - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ、第2イテレーション』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 #coffee.rb の写経会に招かれた(というよりは押しかけた?)ので、先日の RSpec チュートリアルの続きを記します。このエントリは写経会に参加しながらのライブ更新でした。 (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 前回終了時点のコードと実行結果 前回終了時点でのコードを以下に記します。 message_filter.rb class MessageFilter def initialize(word) @word = word end def detect?(text) text.include?(@word) end end message_filter_spec.rb r

    t-wada
    t-wada 2010/03/07
    id:nobeans share_examples_for に関して説明を追記しました(まだ足りないかもしれませんが)。他にもお気軽にご質問ください。
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

    t-wada
    t-wada 2010/03/07
    続きを書きました http://bit.ly/bmurK5 他にも質問等あればお気軽にどうぞ。
  • 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の日記
    t-wada
    t-wada 2009/11/04
    RSpec にとって subject や its が「レール」なんじゃないかなと思っています。便利。
  • GitHub - thumblemonks/riot: Riot is a fast, expressive, and contextual ruby unit testing framework

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - thumblemonks/riot: Riot is a fast, expressive, and contextual ruby unit testing framework
    t-wada
    t-wada 2009/10/26
    高速で動作するテスティングフレームワーク。Slow Test 問題に正面から立ち向かう。 "Protest the slow test."
  • 札幌Ruby会議01 - Regional RubyKaigi

    (札幌Ruby会議01は盛況のうちに開催を終了いたしました。Web上で見かけた感想などは是非、公式タグである sappororubykaigi01 でソーシャルブックマークしていただけると嬉しいです。また、当日のIRCログを欲しい方がいらっしゃいましたら、お手数をおかけしますが sapporo01+contact _at_ rubykaigi.org までメールにてご要望ください。) 開催概要 日時: 2008/10/25(土) 12:00 〜 18:00(11:30開場) 会場: 北海道情報大学札幌サテライト(地図) 主催: 札幌Ruby会議01実行委員会, Ruby札幌 後援: 日Rubyの会, LOCAL 参加費用: 無料 事前登録: 必要(発表される方は登録不要です) 定員: 60-70名程度 ストリーミング: Ustream.tvによる中継を予定しています 懇親会: 懇親スイー

    t-wada
    t-wada 2008/09/25
    LT をやります。よろしくお願いします。実は北海道は初めてです。
  • autotest をカスタマイズする - 観測所日誌

    clear_mappings と二重定義について追記 @2008/04/12 「このファイルをセーブしたらこっちの spec 走らせたい!」と思ったので調べた。 ソースはこの辺 ZenTest: http://zentest.rubyforge.org/ZenTest/ autodiscovery(): http://zentest.rubyforge.org/ZenTest/classes/Autotest.html#M000010 結論 autotest のカスタマイズには、実行ディレクトリ(または~/)に .autotest を置く方法、定められたディレクトリに autotest/ を作る方法の2種類がある。 .autotest がお手軽 Autotest.add_discovery do "rspec" # use Autotest::Rspec end Autotest.add_

    autotest をカスタマイズする - 観測所日誌
    t-wada
    t-wada 2008/04/07
    autotestのhookをカスタマイズして、対応するテストのみを走らせたりする方法など。
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    t-wada
    t-wada 2008/03/31
    充実した記事。そして「TDD とは BDD であり、BDD とは TDD である」と言い切ったのは本当に意義がある。
  • PragDave: Playing with a Testing Library

    I'd like to be able to express my unit tests fairly naturally, using the conditional operators built into the language. So, for example, I'd want to write: expect(factorial(5)) == 120 expect(factorial(10)) > 10000 I'd like the error messages to show both the code that caused the error and the values that caused the error. So, for example, I'd want the following (incorrect) test expect(factorial(6

  • Kagemusha – 影武者

    What Kagemusha is a library of helper functions for testing Ruby scripts. It helps you generating scoped mock-objects which overrides behavior of the class restricted in given blocks, without tainting a global area. Installing # gem install kagemusha The basics Demonstration of usage License This code is free to use under the terms of Ruby’s license. Contact Comments are welcome. Send an email to

    t-wada
    t-wada 2008/03/02
    "Kagemusha is a library of helper functions for testing Ruby scripts. It helps you generating scoped mock-objects which overrides behavior of the class restricted in given blocks, without tainting a global area."
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    t-wada
    t-wada 2007/09/29
    "書いた人: かくたに、もろはし"
  • moroの日記 - Railsでテストを書く勘所

    昨日はOSCに行ってきました。セミナーやブースはほとんど行かず、例によってRubyの会のあたりでだらだらしてたわけですが。 思いがけず師匠の師匠、id:t-wadaさんにもお会いできてびっくり。 で、そこでRailsとTDD(BDD)の話なんかしたので、一週間で思ったことをつらつらと。たぶん不正確というか、理解の足りないところもいろいろあるので、そのへんのツッコミをいただけると感謝です。 書いてたら長くなったのでagenda モデルのテストでは、とにかくロジックを書いたらテストを書く*1。def..endブロック(wを書いたら必ずテストもあるはず。 RailsのMVCコンポーネントの中では一番テストし易いので、そういう意味でもモデルを厚くすると幸せになりやすい。 コントローラのテストでは、基的にリクエストを受けてから表示対象のオブジェクトを導出するまでをテストしたい。 ビューのテストでは

    moroの日記 - Railsでテストを書く勘所
    t-wada
    t-wada 2006/10/30
    あとで言及する、つもりです。
  • http://wiki.marklunds.com/index.php?title=Test_Driven_Development_with_Ruby

  • 1