タグ

テストに関するkomlowのブックマーク (21)

  • 状態ではなく、振る舞いをモックせよ

    TL;DR GOOS『実践テスト駆動開発』で触れられている「ロールをモックせよ」について、違った角度で解説ドメインモデルを豊かにすることでコードがシンプルになる例Mock Behaviors, Not Statesユニットテストを記述する際、テスト対象のオブジェクトが利用しているオブジェクト(依存オブジェクト、隣接オブジェクト)はモックオブジェクトにして、テストしたい状況をテストコード側からコントロールします。しかし、闇雲にモックを使ってテストを記述すれば良いわけではありません。今回は、モックが有効に機能するテストとはどういったものなのかを解説します。 サンプルコード簡単なサンプルで説明します。Extract Till You Dropのモデルと近いものを使います。グループ、メンバー、およびグループリポジトリがあります。グループオブジェクトはインメモリでは所属メンバーの情報を保持しておら

    状態ではなく、振る舞いをモックせよ
  • 体育の日って高速に唱えるとテストの日に聴こえる - ✘╹◡╹✘

    テスト書きすぎ問題 - hitode909の日記 階層が増えるとテストが増える - はこべブログ ♨ テストと対応関係 - $shibayu36->blog; 最近書いているWebアプリは、HTTPリクエストを送ってレスポンスと状態をテストする、というテストだけ書くようにしてる。リクエストするとブログエントリを返す、というサービスだとこういう風なテストを書いてる。(HTMLを返すようにすると話が広がって説明が面倒なのでJSONを返すAPIで説明する) describe "Entry resource" do let(:params) do {} end let(:env) do { "HTTP_AUTHORIZATION" => "Bearer: #{access_token.token}" } end let(:access_token) do AccessToken.make(user

    体育の日って高速に唱えるとテストの日に聴こえる - ✘╹◡╹✘
  • テスト書きすぎ問題 - hitode909の日記

    テスト書きすぎるとよくないって言ってる人がいた.DHHっていう人.作業時間の1/3以上テストしてたらおかしいとか,ActiveRecordのバリデーションなど,Railsの機能はテストしない,とか. Signals vs. Noiseの去年のエントリに、テストをどれくらい書くべきかということについてDHHが指針を示していたものがあったので... - Sooey 偉い人が言ってるからという理由で,テスト手抜き派の人に良い材料を与えてしまった.僕は意見ちがって,作業時間半分以上はテスト書いたりしてる. テストたくさん書くと,最初に書くときのコストは増える.けど,あとから読む時や,変更したい時には,読むだけだし,書くのも差分だけで良い.コード体を理解できれば,要らないテスト捨てるのは,落ちたのを消すだけだから簡単.あとで見て,テスト足りないと分かったときに,明文化されてない仕様からテストを補う

    テスト書きすぎ問題 - hitode909の日記
  • Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!] - Qiita

    Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!]RailsRSpecGuardFactoryGirlspring Railsのテスト環境の定番といえば Rspec Guard FactoryGirl Spork このへんの組み合わせが定番だったんではないでしょうか。 Sporkでテスト環境をプリロードして、Guardでファイルを監視してガンガンテストを回してと。 今回はこのSporkを最近メキメキと頭角を現してきているSpringに置き換えて よりモダンな高速テスト環境の作り方を説明します。 Springのいいところ このSpringなにがいいって、設定がすごく簡単。 おまけにGuard+Rspec以外にもrails generateやrake routesなど他のコマンドも高速化してくれます。 一度体験したらもう戻れません。 必要

    Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!] - Qiita
  • iOS開発でのユニットテストを身につけるには

    テストがないコードはクソとか、このテストツールこそ至高みたいな話が世に溢れているわけですが、 そういう状況になってくると、どうやって始めたらいいのかわからなかったりすると思います。 そういう人のために、何を読んで勉強し、何を使って何を書くと始めやすいかという抽象的な解説をしようと思います。 テストフレームワークの選択 テスト初心者の最初の壁はフレームワークの選択です。 iOSのテストについて調べると、SenTestingKitはクソとかGHUnit最高とかKiwiこそ至高とか言っている人がいると思います。 ですが、入門に最も適しているのはSenTestingKitです。 セットアップが他と比べて簡単だということと、機能が十分に小さくて機能に溺れることがないということが理由です。 SenTestingKitの使い方を学ぶ いきなり突き放すようなんですが、Appleの公式のドキュメントを読むの

  • 次世代のKIF(2.0.0)が良さそう

    KIFはSquare製のIntegration Testsのためのフレームワークです。 この半年くらいでKIFは大幅なアップデートに取り組んでいるらしく、現在はプレリリース版の2.0.0pre5が公開されています。 まだ正式版はリリースされていないのですが、ひとまずプレリリース版を動かしてみました。 KIF(kif-next) KIFは元々GHUnitのようにアプリのビルドターゲットを複製し、エントリーポイントを少し変更することで複製したアプリ上でテストを走らせるというものでした。 新しいバージョンではSenTestingKitを利用することでXcodeに統合されたテストとして実行できるようになりました。 具体的には以下のようなメリットがあります。 command+Uで実行できる エラーが出た箇所を追跡しやすい 部分実行ができる xUnit/xSpec形式でテストを書ける SenTesti

  • ぼくのかんがえた iOSテスト戦略

    2013/3/25に行われた「チキチキ第一回iOSテスト勉強会」の資料です。 いくつか省略していますがご了承ください。 Read less

    ぼくのかんがえた iOSテスト戦略
  • iOSのテストを書くとViewControllerがコントローラーになれる話 - yaakaito::Blog

    Test, 雑感, iPad, iPhone, Objective-Cテストを書く事でおこるいい事は、いろんなところで解説されているので、iOS開発に限ったもので、わりと僕の中でキたViewControllerについて。ViewContollerがデータを所持しているケーステストをしていく上で課題になるアプリケーションテスト。iOSアプリケーションなので必ずビューが存在するわけですが、こいつを操作するViewControllerが非常に厄介な存在になってくる。少なくともApple公式のドキュメントのような書き方をすると、すぐに破綻する。例えば、こういうコードをよく書くと思いますが、この時に描画されるデータが正しいかをテストする為だけに複雑で手間のかかるアプリケーションテストをする必要があるでしょうか。 - (UITableViewCell *)tableView:(UITableView

  • ソフトウェアテストの30年前と30年後(前編)~テストの根幹は30年前に書かれた JaSST'12 Tokyo

    私は1977年入社。約30年前となる当時と今では、ソフトウェアテストはものすごく大きく変わった。この30年を振り返り、これから30年後にどう変わるか、という予想を紹介したい。 これがソフトウェア開発技術歴史をざっくりと示した技術マップ。 一番左は1964年。仮想記憶を使った初めてのメインフレーム用OS「OS/360」の開発。これは人類史上最初で最後の超巨大プロジェクト。当時で5000人年、だいたい1200人が4年間働いた。 これはコンピュータが大発展する礎になるのだが、プロジェクトとしては大失敗だった。このときのプロジェクトマネージャがフレデリック・P・ブルックス Jr.氏。 1968年には「ソフトウェア工学」という言葉が誕生した。まだ言葉だけだが。このころ主流はアセンブラ言語。FortranとCOBOLが登場し、サブルーチンという概念が出てきて、これを使うとソフトウェアが格好よくできる

    ソフトウェアテストの30年前と30年後(前編)~テストの根幹は30年前に書かれた JaSST'12 Tokyo
  • TypeScript0.9alphaをNode+Gruntで使うよ

    Swift is the best programming language you should learn and make your dream app easily. Swift programming is a powerful yet easy-to-learn coding language created by Apple. It's frequently used for developing iOS and macOS applications, as well as tvOS and watchOS apps. While you can use other languages to create Apple apps, Swift is the preferred language, and it's recommended because its code is

  • RailsでJavascript/CoffeeScriptをテストするときの決定版(にしたい)!Konacha - リア充爆発日記

    というわけでKonachaです。https://github.com/jfirebaugh/konacha なにこれ、粉茶? JavascriptのテスティングフレームワークとしてはJasmineやらMochaあたりがメジャーどころのようだけど、セットアップが難しかったりして「これだ!」というものがなかった。個人的には。 で、今回、よーし、お父さんCoffeeScript書いちゃうぞー!というタイミングにあたって、もう一回いろいろ探してみたところ、これが一番スジがいいっぽかった。 KonachaはRailsでMochaとchaiを使いやすくしたGemらしい。Mochaとchaiは使ったことなかったけど、公式を5秒ほどみたところ、nodeでうごくrspecライクなテスティングフレームワークということでJasmineとかとあんまかわらないんじゃないかと推測。chaiはマッチャーのライブラリのよ

    RailsでJavascript/CoffeeScriptをテストするときの決定版(にしたい)!Konacha - リア充爆発日記
  • GitHub - lazyatom/kintama: It's for writing tests OH GOD OH GOD WHY WHY WHY WHY

    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 - lazyatom/kintama: It's for writing tests OH GOD OH GOD WHY WHY WHY WHY
  • Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる

    Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる:フレームワークで実践! JavaScriptテスト入門(5)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載。今回は、RubyでWebKitをヘッドレス化するフレームワーク、受け入れテストの記述が日語でできるツール、スタブやモック、スパイが使えるライブラリを組み合わせたテスト方法などを紹介。 Capybara-WebkitとCucumberとSinon.JSを利用したJavaScriptのテスト 連載の最終回となる今回は、これまでの連載のようなJavaScriptのロジックを単体テストするのではなく、Webブラウザ上の操作と、それによって動作

    Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる
  • DRY原則とテストの可読性 - ✘╹◡╹✘

    DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い

    DRY原則とテストの可読性 - ✘╹◡╹✘
  • テストでは何をテストすべきか — recompile.net

    2012年08月21日 ソフトウェア開発でのテストとは何かを単純に言うと、成果物が期待通りであるかを検証する作業といえる。こう動作してほしいという期待を入力に、成果物がその通りに動作するかを検証するのがテストである。 となると、成果物とは何で、期待とは何かが問題になるのだけれど、これが一筋縄ではない。というのも、システムは十分に複雑なので、ある部分を複数の部分に分けることもできるし、その部分をより大きな部分のパーツにすぎないとみなすこともできるからだ。 だからといって、一番大きな単位でもって期待通りにあるかどうかを検証すれば済む話かというとそういうわけでもない。というのも、大きな単位には大きな単位なりの期待が、小さな単位には小さな単位なりの期待というものが存在するからだ。 システム開発は、ひとつのものさしではかることができない。システムをつかって業務を遂行できるかという検証と、その部品であ

    テストでは何をテストすべきか — recompile.net
  • 「あとで捨てることになるコードのテスト」について - @kyanny's blog

    同僚とこんな話をした。 例えば「キャンペーンサイトとプレゼント応募フォーム」のような、一時的にしか使わないことがわかっているコードに対するテストをどの程度書けば良いのか?納期は迫っていて、他にもっと優先度の高い仕事もあるとする。最低限 200 が返ってくることだけをテストすれば良いのか、 POST したらどのようなリソースが作られるかまで厳密にテストすべきなのか。 そのとき述べた僕の意見を書いてみる。 追記 同僚の名誉のために補足すると、その時は「不安な部分をテストすべき」という当たり前な結論に落ち着いたのだけど、そもそも詳しく聞いてみたら「僕ならここは不安だから書くと思う」と考える部分については、彼はすでに書き終えていて、その上でさらに厳密にテストを追加すべきだろうか?という問題意識を持っていた、という。なので、以下に意識高そうなことをつらつら書いているけど、同僚氏のほうが僕よりよっぽど

    「あとで捨てることになるコードのテスト」について - @kyanny's blog
  • パフォーマンステスト自動化の取り組み - GeekFactory

    このところ、Webアプリやバッチのパフォーマンステストを自動化するために四苦八苦してるので書いてみます。 パフォーマンステストは泥臭い作業です。毎回似たような感じで待ち時間の長い単調作業と、ボトルネックを解析して実装やミドルウェア設定を見直すような神経を使う作業が入り混じって疲れます。このうち前者を自動化してしまえば、質的な部分に力を注げるだけでなく、夜間や休日を活用して多くのバリエーションを試すことができます。 パフォーマンステストの流れはWebアプリとバッチで以下のように整理できると思います。 Webアプリ デプロイメント クライアントサイド(負荷生成側)で必要なデータセットの準備 サーバサイドで必要なデータセットの準備 アプリケーションの設定 負荷生成 クライアントサイドのログ収集 サーバサイドのログ収集 分析 バッチ デプロイメント サーバサイドで必要なデータセットの準備 アプリ

    パフォーマンステスト自動化の取り組み - GeekFactory
  • 最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記

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

    最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記
  • text.ssig33.com - RSpec の書き方について

    RSpec の書き方について 要約:RSpec は単なるテストを英語っぽく書けるツールではなく開発の全プロセスを加速するツールであるのでプロジェクト初期から有効に利用する必要がある。 4/1 ですが気にせず真面目な話を書きます。 RSpec は多分 Ruby 界隈で一番使われているテストフレームワークの一つだと思います。であるので使い方の解説や概念の解説多いですが、個人的にはそれらの解説は的を外したものが多いと考えています。 RSpec の真髄を会得するには、 RSpec の spec をどのように書くかということを考えてゆく必要があると思います。 まず RSpec の特徴的な点とはなんでしょうか。 RSpec でテストは以下のように書かれます。 describe "肛門" do context "排便する時" do it "高速に排便されると肛門がすりきれる" do 肛門がすりきれるとい

  • ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組

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

    ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組