タグ

RSpecに関するmachatakaのブックマーク (5)

  • RSpecの指針について網羅的に書いてみたかった - Qiita

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

    RSpecの指針について網羅的に書いてみたかった - Qiita
  • 読みやすいRSpecを書くためのTips - 弥生開発者ブログ

    こんにちは、黒曜(@kokuyouwind)です。 最近見つけた面白いポケストップは「シーサーに似た守り神(メイドインタイランド)」です。 PokemonGOは飽きてきて、代わりに最新作のサン・ムーンが欲しくなってきました。 アローラロコンかわいいよアローラロコン。あとミミッキュ。 さて、Misocaに入社して一年弱が経ち、RSpecの書き方にも大分慣れてきたのですが、油断すると冗長で複雑なSpecを書いてしまいがちです。 既存のSpecが複雑だと新しいexampleを追加するときにも書きづらくなってしまうため、気づいたらなるべくリファクタリングするように心がけています。 今回は、最近自分が「こういう書き方だと読みやすく保守もしやすいのではないか」と思っているRSpecの書き方について紹介していきたいと思います。 Specを記述する対象と文脈に着目して分割する 最近書くSpecでは、大体

    読みやすいRSpecを書くためのTips - 弥生開発者ブログ
  • 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入ってこない場合はじっくり文を読んだり、実際に自分で写経しながらコードを動かしたりするなどして、少し時間をかけながら理解するようにしてください。 今回は以下のような内容を説明します。 モックの基的な使い方 モックを使った検証 モックでわざとエラーを発生させ

    使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita
  • CircleCI上でCapybara, Poltergeist, PhantomJSを利用したテストがMouseEventFailed失敗す... - Sooey

    CircleCI上でCapybara, Poltergeist, PhantomJSを利用したテストがMouseEventFailed失敗する問題を解消した。 以下のような構成のRailsアプリをCircleCI上でビルドすると、Capybara::Poltergeist::MouseEventFailedという例外が発生してテストが失敗するケースがあった。 Rails 4.2.x RSpec 3.4.x Capybara 2.6.2 Poltergeist 1.9.0 PhantomJS 2.1.1 (CircleCIプロジェクト設定でUbuntu 14.04 (Trusty) containerを利用するように設定しておく必要あり) この時、失敗の原因となっているテストコードは、 click_link '日語のラベル' のようなもの。 調査のためにCircleCIにSSHで接続し、

  • http://megaya.hatenablog.com/entry/2015/02/01/224949

  • 1