タグ

Rubyとテストに関するtyabeのブックマーク (16)

  • 大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)

    日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec

    大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)
  • factory girlを使ってみようと思う - rochefort's blog

    以前から試してみたかったfactory girl。 こないだ試した twitter-auth at master のテストで使われていたので、これを機にinstallしてみた。 (他にもfakewebやらremarkable_railsなど、いろいろ気になるのが使われてる。) 名前もなんかいいよね。girlって付くと。 thoughtbot's factory_girl at master - GitHub 参考 has_many throughでの例が非常に分かりやくて参考になります。 has_manyなフィクスチャを書くのに疲れたらFactory Girlがオススメ! - func09 バージョン readmeよく見たらいろいろバージョンがあるらしい。 現時点では下記のよう。 (あと、いろいろforkされててfactory_boyっつーのもあるらしい。気になる) factorygirl

    factory girlを使ってみようと思う - rochefort's blog
  • http://www.machu.jp/posts/20100828/p01/

    http://www.machu.jp/posts/20100828/p01/
  • Ruby / Rails のテストが約3倍速になって超快適に!! - 微熱 everyday - subtech

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    Ruby / Rails のテストが約3倍速になって超快適に!! - 微熱 everyday - subtech
  • POST可能なRubyのNet::HTTP偽装テストライブラリWebMock - きたももんががきたん。

    水風呂のすゝめ 毎日めちゃくちゃに暑い。 ここ数年「およげ!たいやきくん」のように昼間は太陽とオフィスビルとアスファルトの三方向から押し寄せる35℃オーバーの熱に挟まれ、夜になっても最低気温が27℃くらいまでしか下がらない。そんな理不尽な東京鍋の中の暮らしが毎年のことにな…

    POST可能なRubyのNet::HTTP偽装テストライブラリWebMock - きたももんががきたん。
  • 第37回 実用的なダミーサーバ ww(double-web)(2) | gihyo.jp

    前回(第35回)はwwを使ってWebのダブルとなるサーバを作り、スパイ機能を使ってクライアントからのリクエストの状況を目視確認する方法を説明しました。 今回は、ミニブログへのメッセージ投稿を通じて、wwを自動化テストに組み込む方法を説明します。 RSpecの自動テストの中からサーバを起動停止する wwは、単一のサーバプロセスとして起動させるほかに、自動化テストの中で定義・起動・停止するためのAPIを備えています。前回作ったダブルサーバを、RSpecから起動・停止するテストコードは次のようになります。 # spec/miniblog_client_spec.rb $:.unshift File.expand_path("../lib", File.dirname(__FILE__)) require 'miniblog_client' require 'ww' describe Minibl

    第37回 実用的なダミーサーバ ww(double-web)(2) | gihyo.jp
  • Web APIのテストにも。ダミーWebサーバ·ww MOONGIFT

    wwはRuby/Sinatra製のオープンソース・ソフトウェア。Web APIを使った開発の場合、自動化したテストをいかに行うかが問題になる。特にWeb APIのように他サービスのリソースを使う場合、テストで過剰アクセスするとブロックされてしまう危険もある。 外部サービスを使った開発で利用 それを回避するにはテスト用に別途サーバを用意するのが良い。設定ファイルでテスト時や開発時にはローカルのサーバにデータを飛ばすのだ。柔軟にレスポンスデータを返すのにwwが面白そうだ。wwはSinatraで作られたダミーのWebサーバだ。 wwはレスポンスデータを設定したスクリプトを使ってサーバを立ち上げる。SinatraなのでURLの設計は容易で、レスポンスデータの設定も簡単だ。ユニットテストとも連携でき、自動的に立ち上がってテストができる。テストケースごとにサーバがリセットされる機能もある。 リクエスト

    Web APIのテストにも。ダミーWebサーバ·ww MOONGIFT
  • RspecとCucumberでTDD/BDDを極める (The Rspec Bookの紹介) - Masatomo Nakano Blog

    の紹介第2弾。少し前、Twitter上でTDD/BDDについて盛り上がっていたので、このを紹介してみたくなった。 「The Rspec Book: Behaviour Driven Development With Rspec, Cucumber, and Friends」という。 このは、RspecとCucumberを使い、どう考え、どうシステムを作っていくか、というをチュートリアルを交えながら紹介する構成になっている。 ただUnit Testを紹介するだけではなく、Unit TestツールであるRspecに、BDDツールであるCucumberを組み合わせて使うことで、Unit Testでカバーできない部分をCucumberで補い開発をする、というところがこのの肝になっている。 このを読み、実践することで、Unit Test*だけ*を書いてシステムを作っているときのモヤモヤ感

  • Ruby の開発環境として ZenTest(autotest)を入れた - すがブロ

    この間 BPStudy#29 に参加してきました BPStudy - connpass そこで TDD とペアプロを行なってきました。 やってみた感想 TDDに関しては、言われた通りの事が実感できました。 たとえば、テストを書く時点でインターフェイスについて考えるとか。 ただ、絶望的な問題があった テストを実行するのが面倒という点。 編集する→テスト(テストコマンドを実行)する、というのはまったくもって刺身たんぽぽな作業であり、DRYですらない。 で、以前からZenTest というのは聞いていたので、その環境を構築しておくべきだった、と痛感した。 なので、環境をつくってみたよ autotest による RSpec の自動テストと、その結果を Growl に通知するように設定しました。 gemのインストール sudo gem install zentest sudo gem install

    Ruby の開発環境として ZenTest(autotest)を入れた - すがブロ
  • rake specの実行時間を短くするための簡単なお仕事です ※ただし、(何か)に限る - moroの日記

    TDDで開発している人の目下の悩みはSlow test問題、すなわちテストの実行時間がかかりすぎて辛い、という問題です。 が、ふと思うところがあって、次のようなタスクを定義していたら、なんということでしょう、劇的に早くなったではありませんか。 namespace :spec do spec_prereq = Array(File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop) desc "faster version of rake spec, but why?" task :faster => spec_prereq do %w[spec:models spec:controllers spec:views spec:helpers spec:lib].each do

    rake specの実行時間を短くするための簡単なお仕事です ※ただし、(何か)に限る - moroの日記
  • 分散システムのテストを自動化する - Blog by Sadayuki Furuhashi

    複数のプロセスが相互に連携して動くシステムのテストを自動化したい。 普通に書くとプロセスを起動したあと終了するまで待ってしまうので、複数のプロセスを同時に起動できなくて困ります。&を付けてバックグラウンドで起動させると、後で終了させたとき、まず ps aux | grepしてPIDを調べて、シグナルを飛ばして、しばらくポーリングして当に終了するまで待つ、なんてことになって面倒です。 それから起動してからしばらくは初期化処理が走っているので、標準出力に「started」と表示されるまで待ちたかったりします。 そのあたりをうまく扱うためのライブラリを書いてみました。↓こんな感じで自動化できます。 #!/usr/bin/env ruby require 'chukan' include Chukan srv = spawn("server -arg1 -arg2") # 'server' コマ

    分散システムのテストを自動化する - Blog by Sadayuki Furuhashi
  • 第21回 Railsアプリの受け入れテストをCucumberで書こう | gihyo.jp

    はじめに Cucumberとは受け入れテストのためのテスティングフレームワークです。CucumberはRuby on Railsに依存しているライブラリではないため、例えば同じRuby制のフレームワークであるSinatraはもちろん、PHPなどで書かれたアプリケーションでも使用することができます。 Sinatraやフレームワークを使用していない素のRubyスクリプトなどをベースにCucumberの解説をすることも可能ですが、今回は仕事で使っている人が多く、また筆者自身もRailsを使って開発をしていることもあって、Railsをベースに解説させていただきます。 なぜCucumberなのか 筆者が勤めている株式会社RAWHIDE.では、Railsアプリを作成する場合、原則的にCucumberでテストを書くようにしています。Cucumber採用当時は、社内にナレッジが少ない、不慣れなど、なかなか

    第21回 Railsアプリの受け入れテストをCucumberで書こう | gihyo.jp
  • テストを中心にした Rails 開発 - NetBeans IDE 6.0 チュートリアル

    執筆: Brian Leonard、管理: Beth Stearns 2007 年 12 月 [リビジョン番号: V6.0--1] この記事では、Ruby および Rails のコードをテストする際に役立つ NetBeans IDE の機能について説明します。使用可能なテストのオプションはいくつかあり、アプリケーションの単体テストが簡単になります。 この記事には、Ruby テクノロジでのプログラミングの基礎知識が必要です。 目次 NetBeans IDE による Ruby のテストのサポート Test::Unit でのテスト 自動テスト Rspec によるテスト この記事を使用するには、次のソフトウェアが必要です。 ソフトウェアまたはリソース 必須バージョン NetBeans IDE による Ruby のテストのサポート NetBeans IDE は、Ruby のテストフレームワークとテ

  • RSpecを日本語の仕様っぽくするには - ナマケログ

    仕事Railsアプリケーションを組むときに、test/unitじゃなくてRSpecを使ってる。mock周りの使い勝手がいいとか、語彙が馴染みやすいとかいろいろ魅力があるんだけど、その「可読性」を保つにはなかなかコツがいると思う。言うまでもなくRSpecはRubyのコードを「英語の表現として自然に見える」ようにすることを意図して語彙や書き方を決めている。これは英語圏のエンジニアには非常に素敵なことではあるんだけど、英語が苦手で英作文なんて始めて数分で泣きたくなるようなへたれ外国語学部生にとっては正直やっかいだし、周りの人達の大半は英語に慣れていない人達*1だったりするので、せっかく可読性が高い綺麗な表記でさえむしろ意図を理解する妨げになったりする。いっそドイツ語で書いて「お勉強」に活用してやろうかという衝動に駆られたけども、誰一人として読めない上に一週間後の俺ですら理解に苦しみそうなので

  • Route 477(2009-06-09)

    ■ [ruby] Rubyのテスト環境大戦争 おまいらは当にテストが好きだな!というわけで、Rubyのテスト関係のライブラリを並べてみた。 テストフレームワーク Test::Unit Ruby標準添付のユニットテスト用フレームワーク。 RSpec DSLを使う、「BDD」という概念を流行らしたユニットテスト用フレームワーク。 Cucumber 自然言語を使って、ブラックボックステストを記述する。RSpecの「Stories」と呼ばれていた機能が独立した。 あとはShouldaとかbaconとかいろいろありますけども。 モック・スタブライブラリ モック=あるオブジェクトに期待したメッセージが飛ぶかどうかテストするためのオブジェクト、 スタブ=ネットワークが絡むとか、実際のオブジェクトが使えない場合に使う偽オブジェクト。 と思ってるんですけどどうなんですかね(more: モックとスタブの違い

    Route 477(2009-06-09)
  • 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の日記
  • 1