Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

RSpecに関するji_kuのブックマーク (39)

  • Docker時代の分散RSpec環境の作り方 // Speaker Deck

    大江戸Ruby会議06 トーク資料

    Docker時代の分散RSpec環境の作り方 // Speaker Deck
  • サヨナラBetter Specs!? 雑で気楽なRSpecのススメ - Qiita

    はじめに RSpecって結構「RSpecらしく書くこと」を求められたりします。 たとえば、describeやcontextでしっかりグループを分けましょう、再利用するデータはletやsubjectに切り出しましょう、ひとつのexample(it)の中でテストするのはひとつの項目だけにしましょう、等々の方針です。 よくあるのが「Better Specsを読んで、こんなふうに書くようにしましょう!」っていうパターンですね。 Better Specs しかし僕の場合、最近は「そこまでがんばってキレイにしなくてもいいのでは?」と考えるようになってきています。 その結果、テストコードがだんだん雑になってきています。 というわけで、この記事では最近僕が実践している「雑なRSpec」の書き方を紹介します。 備考 この記事は以前自分のブログに書いた内容を加筆・修正したものです。 「雑なRSpec」以外の話

    サヨナラBetter Specs!? 雑で気楽なRSpecのススメ - Qiita
    ji_ku
    ji_ku 2016/09/08
  • テストコードにまつわる5つのエトセトラ - give IT a try

    はじめに ひとつ前のエントリでRSpecの話を書いたので、それにちなんで最近僕の身の回りで起きたテストコードに関する雑多なエピソードをいくつか書いてみます。 その1:テストコードを書いてない処理で見事にバグを出してしまった・・・!! 僕はソニックガーデンの中では「テスト番長」の異名を持っていて、基的にテストコードはしっかり書くタイプです。 ですが、どうしてもリリースを優先しなければいけないときは、やむを得ずテストコードを後回しにして先にリリースすることもあります。 先日リリースした「テストを後回しにしたコード」は、リリース直後は問題なく動いていました。 その数週間後、別の仕様変更が入り、変更したコードをリリースしました。 「テストは全部パスしているので大丈夫なはず~!」と思ったら、リリースの翌日に変なシステムエラーが発生。 エラーが起きている場所を見て、ガーン。 例の「テストを後回しにし

    テストコードにまつわる5つのエトセトラ - give IT a try
    ji_ku
    ji_ku 2016/09/08
  • ローカル環境でのフルテストを60分短縮した話 - Qiita

    Viibarアドベントカレンダーのトップバッターは @yagince が担当致します。 テスト書くのが当たり前になってきた昨今、フルテストはCIサーバに任せるのが当たり前になっている方も多いのではと思います。 しかし、こんな事ありませんか? CIのキューがめっちゃ溜まってしまう インターネット繋がらない環境にいる時にリモートにpushできない そんな時、ローカルでフルテスト流したい!ってことになりますよね。 はい、私はなりました。 というわけで、今回はローカル環境でフルテスト流すのを頑張るためにやったことを書きます。 ※今回はテスト自体をリファクタリングするのではなくツールや設定を変更する事で改善を試みます 前提 Ruby: 2.2.2 Rails: 4.2.3 MySQL: 5.6.27 OS: Mac OSX 10.10.5 まずはフルテスト流してみる

    ローカル環境でのフルテストを60分短縮した話 - Qiita
    ji_ku
    ji_ku 2016/08/28
  • RSpecのshouldはもう古い!新しい記法expectを使おう!

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    RSpecのshouldはもう古い!新しい記法expectを使おう!
    ji_ku
    ji_ku 2016/08/28
  • RSpecの指針について網羅的に書いてみたかった - Qiita

    概要 この記事では、RSpecにあまり馴染みがない人にもわかりやすいように、RSpecの理想的な書き方(=コーディングルール)を説明しようとしています。 書いてあることは個人的な見解です。理性的な議論を歓迎します。 友人に語っているような文体ですのでお気をつけください。 動機 俺はみんなにRSpecを書いてほしかったんじゃない。 いいRSpecを書いてほしかったんだ(´・ω・`) なぜかバリデーションだけ一生懸命にテストされていて自作の30行近いメソッドにテストがないとか、10行近いbeforeブロックがコピペされまくってるとか、そういうのはさ、見たくないんだ。 あと、http://betterspecs.org/ は読もう。日語版もあるし。そこに書いてあることはここでは繰り返さないので、あしからず。 総論 はじめに ここから先は読まなくてもいいからこれだけは読んでほしい。 itブロック

    RSpecの指針について網羅的に書いてみたかった - Qiita
    ji_ku
    ji_ku 2016/08/10
  • RailsのRSpecテストを速くする方法まとめ - Rails Webook

    Photo by Flickr: chief_huddleston's Photostream Railsの規模が大きくなると自動テストの実行時間もだんだんと長くなっていきます。素早く開発していくにはテストの実行時間を短くすることが大切です。 RSpecのテストを速くする方法をまとめましたので参考にしてください。 動作確認 Rails 4.1 rspec-rails 3.1.0 test-queue 0.2.9 目次 1. RSpecのパフォーマンス測定 2. test-queueで並列でテストを実行する 3. rspec-guardを使って更新したファイルを自動的にテストする 4. Springを使ってテストのロード時間を短くする 5. ログレベルを変える 6. GCを実行を抑える 7. RSpecファイルのリファクタリングをする 7.1. itを少なくする 7.2. createよりも

    RailsのRSpecテストを速くする方法まとめ - Rails Webook
    ji_ku
    ji_ku 2016/07/08
  • Railsの開発効率を上げる - guard-rspec 自動でテスト(RSpec)を実行させる - Rails Webook

    Guardとは Guardとはファイルの変更を検知して、自動的にさまざまな処理を実行してくれるRubyのGemです。 これ単体で使うよりも、他のツールと連携し、自動的に処理を行うことにより開発効率を上げることができます。 メジャーどころとしては、次の3つだと思います。 guard-livereload - Viewファイルの変更したときに自動的にブラウザをリロードする guard-rspec - specファイルを変更したときに自動的にRSpecを実行する guard-rubocop - ファイルを修正したときにRuboCopを実行する 記事では、Railsへguard-rspecの導入方法を記載します。 RSpecを自動的に実行することで、ソースがいつ壊れたか簡単に検知できるようにします。 対象読者 Railsの開発効率を上げたい方 確認バージョン Mac OSX 10.9 Ruby

    Railsの開発効率を上げる - guard-rspec 自動でテスト(RSpec)を実行させる - Rails Webook
    ji_ku
    ji_ku 2016/07/08
  • RSpecまとめ(2)~Mock(double/stub/mock)~ - web-k.log

    前回はRSpecの基メソッドについてまとめました。今回はMockについてまとめます。 テストダブルとは テスト対象が依存しているモジュールやリソースの代役のこと。結合テストのような複雑な環境を事前に用意せずとも目的の機能をテスト可能となるように振る舞いをシミュレートする。 irb,pry等でMockを試したい時、

    ji_ku
    ji_ku 2016/05/31
  • 使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第2回です。 今回はRSpecのマッチャについて説明していきます。 第1回と同様、今回も「最低限これだけは」という内容に絞り込んで説明します。 使用頻度の少ないマイナーなマッチャ(注:僕基準)については説明しません。 具体的な項目は以下の通りです。 マッチャとは何か to / not_to / to_not eq be be_xxx be_truthy / be_falsey change + from / to / by 配列 + include raise_error be_within + of これからRSpecを始める人はもちろん、何度かRSpecに触れて「うーん、RSpecってわけわからん」となっている人もこの記事で再入門してみると

    使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 - Qiita
    ji_ku
    ji_ku 2016/03/30
  • RSpecでテストを作るのに役立つ「モック/スタブ」のシンプルな説明

    🖥 VULTRおすすめ 「VULTR」はVPSサーバのサービスです。日にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

    RSpecでテストを作るのに役立つ「モック/スタブ」のシンプルな説明
    ji_ku
    ji_ku 2016/03/12
  • 手作業で構築した AWS リソースの管理には awspec が良いと思ったのでメモ - ようへいの日々精進XP

    tl;dr 手作業で構築した AWS リソースの管理には以前から気になっていた awspec が良いと思ったのでメモ。 二台、三台のインスタンスなら...とうっかりと手作業で構築したインスタンスや、どんな設定で作ったか判らないけど、なんとなく利用されている S3 Bucket の管理をどうしようかなと思っていたら awspec の generate コマンドがリソース情報を生成してくれるので試してみた。 参考 github.com qiita.com memo インストール $ cat Gemfile source "https://rubygems.org" gem 'awspec' gem 'rake' $ bundle 初期化 $ bundle exec awspec init + spec/ + spec/spec_helper.rb + Rakefile + spec/.giti

    手作業で構築した AWS リソースの管理には awspec が良いと思ったのでメモ - ようへいの日々精進XP
  • GitHub - eliotsykes/rspec-rails-examples: RSpec cheatsheet & Rails app: Learn how to expertly test Rails apps from a model codebase

    An RSpec cheatsheet in the form of a Rails app. Learn how to expertly test Rails apps from a model codebase A small yet comprehensive reference for developers who want to know how to test Rails apps using RSpec. Here you'll find in-depth examples with detailed documentation explaining how to test with RSpec and related testing gems, which you can then apply to your own projects. This application w

    GitHub - eliotsykes/rspec-rails-examples: RSpec cheatsheet & Rails app: Learn how to expertly test Rails apps from a model codebase
    ji_ku
    ji_ku 2016/02/08
  • GitHub - gocardless/rspec-activejob: RSpec matchers for testing ActiveJob

    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 - gocardless/rspec-activejob: RSpec matchers for testing ActiveJob
    ji_ku
    ji_ku 2016/02/08
  • RSpec 3の重要な変更 - 有頂天Ruby

    Myron Marston » Notable Changes in RSpec 3の雑な訳です。 誤訳・雑すぎる訳がありましたら、Twitterで@nilp_までご連絡頂けると助かります。 RSpec 3.0.0 RC1が2日前にリリースされました、そして最終的な3.0.0のリリースが目前に迫っています。 我々はβ版をここ6ヶ月にわたり使ってきました、我々はそれらを皆さんと共有できることにわくわくしています。 これが新しいとこだよ: すべてのgemたちにわたって Ruby 1.8.6と1.9.1のサポートがなくなりました これらのバージョンのRubyはかなり前に寿命を迎えました、RSpecはこれらをサポートしません。 Ruby 2.xのサポート向上 最近のRSpec 2.xのリリース(すなわち2.0がリリースされたあと出たやつ)はRuby 2を公式にサポートしています、しかしRSpec

    RSpec 3の重要な変更 - 有頂天Ruby
    ji_ku
    ji_ku 2016/01/20
  • http://megaya.hatenablog.com/entry/2015/02/01/224949

    ji_ku
    ji_ku 2016/01/20
  • [Rails] RSpecのリファクタリング - Qiita

    Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる7 Railsにおけるリンクの記述方法とそのテスト http://qiita.com/kidachi_/items/d704e7eb63513c3831ae の続き。 Ruby on Rails Tutorial(chapter5) http://railstutorial.jp/chapters/filling-in-the-layout#sec-layout_exercises ##Rspecのリファクタリング 指定のページが指定の要素を持っている(もしくはいない)かをチェックするテストコード。 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the h1 'Sample App

    [Rails] RSpecのリファクタリング - Qiita
    ji_ku
    ji_ku 2016/01/14
  • リーダブルRspec - Qiita

    はじめに リーダブルRspecというタイトルつけましたが、そんな大それたものではないです テスト書くときでも名前付け重要だからちゃんとしよう!っていうだけの内容です RspecがBDDのためのツールであることを意識しつつ、 Rspecの流儀に則って適切に名前付けをして書くと読みやすいテストがかけるはずです describe/context/exampleのメッセージに適切に名前つける これが出来るだけで当然読みやすいテストになる describe->テスト対象 context->テストする状況 example->テスト(itやspecify) なので、 『aaaはbbbの時cccになる』 というテストを書くときは次のようになる 重要なのは describe/context/exampleだけでテストの概要を説明すること 理解しやすい状態になっていないと、負債になってしまう 1つのdescr

    リーダブルRspec - Qiita
    ji_ku
    ji_ku 2015/12/15
  • Factory Girl 3.x メモ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Factory Girl 3.x メモ - Qiita
    ji_ku
    ji_ku 2015/10/21
  • FactoryGirlのtransientとtraitを活用する - Qiita

    FactoryGirlでテストデータを定義する時に、transientとtraitを活用すると色々捗るという話。 transientは実際に作成するデータと直接関係無い新しいattributeを定義する機能。 そこで定義されたものは実際のmodelにはセットされないしattributes_forでも出力されません。 何のために使うかというと作成時に挙動を変更するためのフラグや追加データとして利用するのが一般的です。 traitは属性の定義を一纏めにして名前を付けられる機能です。 parentを指定したfactoryの継承とは違い、traitは単体ではfactoryとして機能しません。 あるfactoryの特定の状態に名前を付けて、付け外しできるようにする、というのが主な使い方になります。 例えば、あるfactoryをある時はadminある時は非adminで作りたい時等に有効です。 個人的に

    FactoryGirlのtransientとtraitを活用する - Qiita
    ji_ku
    ji_ku 2015/10/21