タグ

rspecに関するokinakaのブックマーク (14)

  • N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ

    はじめに テストコード一般の考え方 壊れにくいテストを書く 実装した通りに動作することではなく、仕様通りに動作することをテストする テストコードはシンプルにわかりやすく書く 失敗の原因がわかりやすくなるように意識する RSpecの書き方 テストケース名をitの引数で明記する letよりもlet!を使う 通常の変数と同じ方針に基づいてlet!を利用する subjectを使わない 不要なcontextでのネストを避ける matcherを適切に使い分ける factoryのデフォルト値に依存しないテストを書く 参考にしたブログ記事等 付録:RuboCop設定 We are hiring! サムネイル画像 はじめに テストコードを書く習慣も、近年ではかなり一般的なものになってきました。 ドワンゴ教育事業のバックエンドチームでも自発的にテストコードを書く文化は根付いており、実際に計測はしていませんが、

    N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ
  • RSpec Mocks 3.11 - RSpec Mocks - RSpec - Relish

    rspec-mocks helps to control the context in a code example by letting you set known return values, fake implementations of methods, and even set expectations that specific messages are received by an object. You can do these three things on test doubles that rspec-mocks creates for you on the fly, or you can do them on objects that are part of your system. Messages and Methods Message and method a

  • [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 最近Rspecをガッツリ書いたので、調べたことをユースケースごとにまとめてみます。 対象バージョンはRspec3.3です。 リフレクション Rubyのリフレクションを使用したテストの書き方です。 インスタンス変数を操作したい インスタンス変数を取得したい場合はinstance_variable_get、設定したい場合はinstance_variable_setを使います。また、instance_variable_setでモックを仕込むことでレシーバオブジェクトのインスタンス変数や動作を操作することができます。 obj = Person.new(name: 'Hoge') # initializerで@nameにnameがセットされる想定 name = obj.instance_variable_get('@name') expect(name).to

    [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO
  • スクラムの受け入れ条件と対応させてTurnipで自動テストを書く | DevelopersIO

    丹内です。 掲題の通り、受け入れ条件を意味のあるものにするため、開発者が書く自動テストを意味のあるものにする話をします。 受け入れ条件とは 受け入れ条件とは、スプリントの計画時に決める「これを満たせば達成とする」という条件のことです。 チームやスクラムの運用によって内容は変わると思うのですが、私は「期待される成果物や機能を具体的に書くこと」が、受け入れ条件にとって必要なことだと考えています。 この受け入れ条件は、例えば「ユーザはタグを付けてブログを投稿できる」というストーリーの場合、以下のようになります。 タイトルと文から成るブログを投稿できること タグを付けて投稿することができること ユーザマニュアルが更新されていること このうち上の2つは具体的な機能に関する受け入れ条件ですが、これと対応するように自動テストを書きたいと思います。 Turnipとは/受け入れ条件との関連 Turnipと

    スクラムの受け入れ条件と対応させてTurnipで自動テストを書く | DevelopersIO
  • RSpec の入門とその一歩先へ、第2イテレーション ~RSpec 3バージョン~ - Qiita

    はじめに 記事は和田卓人さん(@t_wada)が書かれた有名なRSpec入門記事、「RSpec の入門とその一歩先へ、第2イテレーション」をRSpec 3バージョンとして書き直したものです。 詳しくは第1イテレーションに書いた説明を参照してください。 各イテレーション(RSpec 3バージョン)へのリンク 第1イテレーション 第2イテレーション(記事) 第3イテレーション ソースコードのURL https://github.com/JunichiIto/rspec3-for-beginners/tree/end_of_iter2 記事のライセンスについて 記事は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 備考 文やサンプルコードは極力オリジナルバージョンを踏襲します。 記述が古くなっている箇所は新しい記述方法に書き直します。 新しい記

    RSpec の入門とその一歩先へ、第2イテレーション ~RSpec 3バージョン~ - Qiita
  • RailsのテストフレームワークRSpecの基礎知識

    実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング 顧客管理システムの構築を体験しながら、Railsアプリケーション開発のノウハウを習得! この記事は、書籍『実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング』の内容を、Think IT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。 記事では、テストフレームワークとしてRSpecを採用します。RSpecをうまく活用すると、簡潔で読みやすいテストコードを書くことができ、Railsアプリケーションの保守性を高めることができます。 しかし、RSpecの用語法や表記法はやや独特で、慣れるまでには時間がかかります。読者の中にはとまどいを覚える方がいらっしゃるかもしれませんが、次章以降を読み進めるうえでの鍵となりますので、是非じっくりと読んで理解してく

    RailsのテストフレームワークRSpecの基礎知識
  • RSpec入門 (全15回) - プログラミングならドットインストール

    BDDのためのテストフレームワークであるRSpecについて、その使い方を学んでいきます。

    RSpec入門 (全15回) - プログラミングならドットインストール
  • InfratasterでNginxのルーティングのテスト書いてる: InfratasterでNginxのルーティングのテスト書いてる, , Infratasterは、ServerspecみたいにRubyのRSpecの記法でテストを書いて、(例えば)HTTPリクエスト

    [Infrataster] InfratasterでNginxのルーティングのテスト書いてるサーバーのテストはServerspecで書いているんだけど、Nginxの設定ファイルで書いているウェブサーバーのルーティングのテストをどうしようかと思っていました。自分で、簡単なツールでも書くべきかなあと。 /path/to/app でアプリケーションにプロクシーする 但しcookieがない場合は静的ファイルをサーブする /path/to/static/file で静的ファイルをNginxが直接サーブする /path/to/health/check でヘルスチェック用のレスポンスを返す、但しHTTPヘッダーを見て普通のブラウザーアクセスではForbiddenにする バーチャルドメインごとに微妙にパスとかが違う みたいなルーティングのテストは、外側からのテストなのでちょっとServerspecのスコー

  • The RSpec Book用にVagrant環境を作成し、写経してみた - メモ的な思考的な

    RSpecの使い方に慣れるため、評判の良い「The RSpec Book」を写経しました。 手を動かすチュートリアルとしては、Codebreakerというゲームと、Railsの2種類あり、それぞれの作り方がとても参考になりました。 特に、リファクタリングの方法や考え方まで記載されていたので、独学で進めている自分にはありがたかったです。 ただ、を写経するのに必要な環境が少々古かったことから、Vagrantで環境を作ってから写経をやりましたので、その時の内容をメモしておきます。 The RSpec Book (Professional Ruby Series) 作者: David Chelimsky,Dave Astels,Zach Dennis,角谷 信太郎,豊田 祐司,株式会社クイープ出版社/メーカー: 翔泳社発売日: 2012/02/22メディア: 大型購入: 7人 クリック: 14

    The RSpec Book用にVagrant環境を作成し、写経してみた - メモ的な思考的な
  • Jenkinsでテストを実行してみよう+Rubyテストの基礎(RSpec&Turnip使用) - Build Insider

    Jenkinsを使って小さなテストを自動実行して、開発スピードを飛躍的に向上させよう。また、MacでのRubyRails環境の構築方法から、テストフレームワーク「RSpec」とインテグレーションテスト環境「Turnip」を使ったテストの書き方までを解説する。 ← 前回 連載 INDEX 次回 → 前回の記事を読んでJenkinsの環境を構築することはできただろうか? 今回は簡単なサンプルアプリケーションの作成を行ってみようと思う。同時に、Rubyの標準的なテストフレームワークのRSpecと、インテグレーションテスト環境であるTurnipを使ったテストの書き方を解説する。作成したテストを、Jenkinsを使って自動実行できるようになれば、あなたの開発スピードは飛躍的に向上することだろう。 Railsの開発環境を構築しよう 2013年10月にリリースされたMac OS X 10.9(通称Ma

  • Rspec/Capybara/Turnipの入門記事を全力でまとめてみた - 酒と泪とRubyとRailsと

    Rspec/Capybara/Turnipの入門記事を全力でまとめてみた Aug 30th, 2013 Tweet さっき、『 The Rspec Book』を読み終えました。厚めのですが、RspecやCucumber、Webrat、Seleniumなどを活用するためのノウハウ満載で大満足でした! ということで、こので読んだ内容を忘れないようにするためと、その過程でRspec/Capybaraなどのネット資料をあつめたので、まとめるためにこの記事を書きます。もし、間違いを発見した場合や他にもいいリソースがあれば、是非メッセージを願いします! テスト駆動開発(TDD)と振る舞い駆動開発(BDD) テスト駆動開発(TDD)とは、コードを書く際に最初にテストを書き、次にテストが通る最低限のコードを書き、その後にリファクタリングしていく開発手法です。一方で振る舞い駆動開発(BDD)はTDDの発

  • RSpecのshouldはもう古い!新しい記法expectを使おう!

    というように書くようになりました。 別にshouldを使った記法がなくなったわけではありませんが、 https://github.com/rspec/rspec-expectations のREADME.mdには、もう新しいSyntaxの説明しか載っていないし、今後はexpectの方を使っていくほうがいいでしょう。 http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax には、新しいSyntaxを導入した背景が説明されています。 簡潔に書くと、shouldだとBasicObjectを継承したクラスのテストを書くときに不具合が起こるみたいですね。 移行方法 基的には、上に書いたように、 foo.should を expect(foo).to に foo.should_not を expect(foo).

    RSpecのshouldはもう古い!新しい記法expectを使おう!
  • RSpec Mocks 2.14で導入されたSpyとRSpec2.14の新記法について - 頭の整理

    RSpec 2.14 で新記法が導入されてRSpec Mocks 2.14でSpyが導入されていたので整理してみました. stub()とshould_receive()の代わりにallow().to receive()とexpect().to receive()が使えるようになっていたり,Spyが導入されたことでRSpecを用いたテストの記述が柔軟になり,わかりやすく書けるようになりました.今までのRSpec Mocksで使ってきたMock ObjectとTest Spyの違いについても少し整理してみました. Myron Marston » RSpec 2.14 is released! このリリースノートのサンプルコードをいくつか引用して説明します. Rspec Mocksのmessage expectationに新しい記法が追加されました. mailer = double("Maile

    RSpec Mocks 2.14で導入されたSpyとRSpec2.14の新記法について - 頭の整理
  • 1