タグ

TESTに関するpoppenのブックマーク (142)

  • PHP のスタティックメソッドをモック化する - pixiv inside [archive]

    初登場の @tototoshi です。今回は pixiv のユニットテストで利用しているモックライブラリの紹介をします。 ここ2ヶ月くらいの間、レガシー化したとあるモジュールのリファクタリングに取り組んでいました。 リファクタリングにはテストコードが必須です。しかし今ではすっかりテストを書く文化が根付いている pixiv にもテストコードがない時代がありました。リファクタリングが必要な古いコードにはテストコードがないことが多く、そういったコードに新たにテストをつけていくのはなかなか大変です。テストの概念のないプロジェクトはテスト可能なように設計・実装されていません。テストを書くのが大変なのではなく、書けるようにするまでが大変です。 特にやっかいだったのは DB を参照したりするようなスタティックメソッドを使ったメソッドのテストでした。以下のようなスタティックな Dao を使用した Serv

    PHP のスタティックメソッドをモック化する - pixiv inside [archive]
    poppen
    poppen 2014/07/03
    むちゃ便利だ
  • Fabrication

    simple and powerful object generation for Ruby Getting Started What is Fabrication? Fabrication generates objects in Ruby. Fabricators are schematics for your objects, and can be created as needed anywhere in your app or specs. Fabrication can generate anything, but has specific support for ActiveRecord Models, Mongoid Documents, Sequel Models, and DataMapper Resources. Installation Fabrication is

  • mocksmtpd を使ったメール送信のテスト « blog.udzura.jp

    mocksmtpd という便利ルビージェムがある。詳細な使い方は 作者さんの日記 にもあるが、今日はより簡単にメール配信のテストが出来るようなおまじないのやり方を紹介する(主に、未来の自分が見返すために)。 インストール rubygems.org には謎のフォークされた gemホストされていて胡散臭い。さいわい、githubホストされているため、今日びのフレームワークなら bundler とかを使って楽にインストールできる。 Gemfile:

  • PHP のテストを Ruby で書く « blog.udzura.jp

    皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 PerlPython にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは

  • BehatとSeleniumを組み合わせ受け入れテストを自動化する

    みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Behavior Driven Development)する方法 Seleniumの課題僕が関わっている案件では受入テストを自動化しているケースももちろんあって、その際はPHPUnitとSeleniumを組み合わせています。 このテストには以下のような課題があります。 画面の操作をするphpコードが大量にあって、ソースを見ただけでは何をしているのか分かりにくいSeleniumは操作に画面の要素名利用するため、例えばサイトのデザインを大幅に変えたりすると、テストの中身も大幅に書き換えな

    BehatとSeleniumを組み合わせ受け入れテストを自動化する
  • スローテストを解消する12の方法

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 システム開発において一番コストが高いものは人的リソースであることがほとんどです。 したがって開発者の時間効率をあげるためにできることは色々と取り組む必要があります。 例えば個人の開発マシンが遅くてビルドやテストに時間がかかるとかもっての他です。 一日10回ビルドして一回のビルドに5分かかるとします。 これを高性能なマシンに変えたら2分になったとすると、(5-2)1020=10時間。 時間単価5000円として一ヶ月あたり合計50000円の節約になります。 同じことがCIやテスト自動化にも言えます。 CIサーバのハードウェアを高性能なものに変更する会社のあまったPCを使ったりして遅いテス

    スローテストを解消する12の方法
    poppen
    poppen 2012/02/13
  • 最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記

    Railsエンジニアになってから1年半くらいが経ち、社内のRailsプロジェクトを全部で5つくらい触って、今やってるAbilie*1でようやく人並みにテストを書いてる気がしてきたので、現時点でやってるテストの方法をまとめておく。 テストのルール的なの rspecでは必ずモデルのテストは書くようにしてる。ヘルパーも大体書いてるけど、コントローラやルーティングのテストはあまり書いてない。 というのも、コントローラーのコードを極力短くしてモデルを太らせているのでコントローラのテストはあんまり意味が無い気がしていて、その代わりにCapybaraでテストを書いておけば十分なんじゃないかなと思ってきたから。Capybaraは書いてるので、そういう意味では書いてるとも言える。 社内の管理者だけが使える管理画面も作ってるけど、そっちはテストあんまり書いてない。ここは動かなくなっても一般ユーザーには影響が

    最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記
  • ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組

    WACATE 2011 夏に誘われたのがキッカケでソフトウェアテストを勉強しはじめて10ヵ月くらいがたちました。 先日、わんくま名古屋でソフトウェアテストの勉強法についてLTしたのですが、みなさんにいろいろ聞かれたのでここにまとめておこうと思います。 当は1年の区切りで書こうと思ったけど、まぁいいでしょう。 追記ここから わんくまで発表したLT資料はこちらです うさみみのソフトウェアテスト勉強法 View more presentations from Kyon Mm 追記ここまで こういうのを書くときに時系列で書くべきか、コツを書くべきか悩みますね。 でも、みんなが知りたいのは僕の歴史じゃなくってコツだと思うので後者で書きます。前者はTwitterとか勉強会とかお事とかお茶でもしているときに聞いてみてください。 以下では多くの書籍を紹介していますが、僕がこの10ヵ月で読んだ。ってい

    ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組
    poppen
    poppen 2012/01/17
  • 右手に感情、左手に数値 - カバレッジを味方にしよう - t-wada の日記(旧)

    このエントリは、 TDD Advent Calendar 2011 の 7 日目の参加エントリです。前日は @sue445 さんの実録!TDD風景でした。 しかし TDD Advent Calendar 2011 は、名エントリが多いですね……ハードルが上がり続けていて胃に穴があきそうです。私の言いたいことの多くは、既に @bleis さんのTDD の基礎体力と、TDD に対する想いや、 @shuji_w6e さんのTDDを学ぶべき10の理由で語られています。二つとも素晴らしいエントリなので、ぜひ読んでみてください。 そろそろカバレッジについて一言いっておくか さて、今日書くのは、カバレッジについてです。 @bleis さんのエントリに以下のような記述があります。 もう一度言いますが、TDD のテストは Developer Testing であって、品質保証を目的としたテストではありません

    右手に感情、左手に数値 - カバレッジを味方にしよう - t-wada の日記(旧)
  • Railsアプリを変更したら自動でブラウザをリロードしてすぐ確認できる guard-livereload|DIGITAL SQUADブログ

    Railsアプリを変更したら自動でブラウザをリロードしてすぐ確認できる guard-livereload guard-livereloadを使うとRailsアプリのビュー、CSSJavaScriptなどを変更して保存すると同時に自動でブラウザをリロードして反映してくれるので、もうブラウザのリロードボタンを押す必要がなくなります。 まずはデモ動画 guard-livereloadはファイルの変更を監視して、変更を保存したときに色々なイベントを実行可能にするコマンドラインツールguardというgemを利用していて、今回のlivereloadの他にも、guard-rspecやguard-cucumberでRSpecやcucumberで変更したら即座に自動で実行するなどが可能になります。 guard-rspec、今回のguard-livereloadについてはRailsCasts(ASCIIca

  • Good night, Posterous

  • Testing in Sinatra

    1. Sinatra とか Padrino とかで テストをどうしているか? - Padrino 黒ミサ in 神泉 - 2011/10/29 @ 神泉 Uchio Kondo (@udzura) 2. 近藤うちお(@udzura) ● Rubyist(2年半ほど) ● Groovyに挫折 ● 現在Haskellを順調に挫折 柴犬のあくび ● 富士マガ所属(ご近所)、 雑誌を定期購読で買ってね! ● カルマ: Rack, Sinatra, Padrinoあたり Rails3, TDD, Linux, アジャイルとかも興味はあるんですよ…… 3. 近藤うちおさんのworks ● ブロッグ http://blog.udzura.jp/ ● Padrino 日語サイト翻訳リーダー ● Padrino framework contributor ● 自称、 Padrino framework エ

    Testing in Sinatra
  • RSpecとtest-unit 2での抽象化したテストの書き方の違い - 2011-07-12 - ククログ

    Ruby会議2011の3日目の「テスティングフレームワークの作り方」の準備をしていますが、30分だと詰め込み過ぎになってしまうので、話さないことを事前に書いておきます。それは、テストを抽象化するためのAPIの違いです。 RSpecとtest-unit 2でのAPIの違いというと、class UserTest < Test::Unit::TestCaseとdescribe Userやassertとshouldの違いの方が目に付きますが、抽象化するためのAPIにもツールの特徴が出ています。抽象化するためのAPIはテストの量が増えてくると必要になる大事な機能です。ここでは、その中でも「テストを共有するAPI」について考えます。 まず、ツールの考え方について確認し、その後、それぞれのツールでどのようなAPIになっているかをみます。 ツールの考え方 まず、それぞれのツールの考え方について確認しま

    RSpecとtest-unit 2での抽象化したテストの書き方の違い - 2011-07-12 - ククログ
  • Railsの人気テストフレームワーク6選!

    前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、テストを使ったリファクタリングについて解説していきます 少し時間が空いてしまいましたが、前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、そのWebアプリに対してテストを書いてリファクタリングする具体的な方法について解説していきます。 今回はまず、Ruby on Railsで人気のあるテストフレームワークの数々についてご紹介します。 最近のテストフレームワークトレンド Hamlの作者として知られるHampton Catlin氏が行った「Hampton's Third Ruby Survey, 2010」の中に、テストに関するいくつかの興味深い結果があります。好きなテストフレームワークは何ですかという質問に対する答えをグラフにすると以下の通りです。 これを見ると「ビヘイビア駆動開発(

    Railsの人気テストフレームワーク6選!
  • Prove を quickrun する - Memo

    元ネタ http://d.hatena.ne.jp/ruedap/20110225/vim_php_phpunit_quickrun http://vim-users.jp/2010/09/hack172/ Perl スクリプトを書く時は テストランナーに Prove を使うのでそっちを設定する。 augroup QuickRunUnitTest autocmd! autocmd BufWinEnter,BufNewFile *test.php set filetype=php.unit autocmd BufWinEnter,BufNewFile test_*.py set filetype=python.unit autocmd BufWinEnter,BufNewFile *.t set filetype=perl.unit augroup END let g:quickrun_co

    Prove を quickrun する - Memo
  • テスト駆動開発のすすめ - Perl日誌

    hachiojipmに行ってきたのですが#4でも#5でもTestを書くのが難しいという声が聞こえたので「テストは書いてみると簡単」「テストがあると開発が楽」という事を伝えてみようと努力する試みです。 ということでサンプルコードを書いてみました。 https://github.com/okamuuu/Sample-Plack-Test 紹介するサンプルコードについて ここで紹介しているスクリプトはある男がBlogを作ろうと思ったがどうせたいしたことしないので俺俺WaFをつくってやろうとして実際にやったテスト駆動開発です。 おもむろにt/web.tとかつくってみる 最初にテストを書いてみましょう。 #!/usr/bin/env perl use strict; use warnings; use Test::Most; use Plack::Test; use HTTP::Request::C

    テスト駆動開発のすすめ - Perl日誌
  • Perl のテストについて(2011年改訂版1) - tsucchi’s diary(元はてなダイアリー)

    0. 前提 0.1 はじめに 以前、Perl のテストについてという記事を書きました。2008年の記事なのですが、現在もそこそこのアクセスがあるようです。 ただ、Test::More がアップグレードされて新しい書き方ができるようになったり、そもそも僕自身のプログラムの書き方が少しずつ変わってきているので、いつまでも古い記事を見てもらうのもどうかな、と思い、2011年バージョンをつくってみました。(ちょっとしか改定してませんが。。。)DB まわりのテストに関しては、また次回。 0.2 対象 Perl は書けるが、Perl のテストコードを書いたことが無い人。 0.3 動作確認環境 % uname -a FreeBSD over.tsucchi.mydns.jp 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Sun Feb 27 23:51:01 JST 2011

    Perl のテストについて(2011年改訂版1) - tsucchi’s diary(元はてなダイアリー)
  • テスト駆動開発チートシート - やさしいデスマーチ

    TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。

    テスト駆動開発チートシート - やさしいデスマーチ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知