はじめに 有名な初心者向けのRSpec入門記事として、和田卓人さん(@t_wada)の「RSpec の入門とその一歩先へ」という記事があります。 僕もRSpecを全く知らなかった頃に参考にさせてもらいました。 今読んでもとても素晴らしい資料なのですが、RSpecのバージョンが古く、現状の書き方とマッチしなくなってきているのが少しもったいないところです。 そこで、この記事では和田さんの記事をRSpec 3バージョンに書き直してみようと思います。 各イテレーション(RSpec 3バージョン)へのリンク 第1イテレーション(本記事) 第2イテレーション 第3イテレーション ソースコードのURL https://github.com/JunichiIto/rspec3-for-beginners/tree/end_of_iter1 本記事のライセンスについて 本記事は クリエイティブ・コモンズ 表
C#では対象インスタンスのメソッドの挙動を変えることは出来ないので、別の手段を探していたのだが、rubyでは出来た。 TL;DR RSpec書いたControllerSpecの中でテスト対象のコントローラのメソッドの戻り値をモックオブジェクトに変えたかった。 ControllerExampleGroupで定義されているcontrollerからテスト中のコントローラインスタンスを操作することが可能 Module: RSpec::Rails::ControllerExampleGroup#controller 前提 rspec-rails (~> 3.0.0.beta2)で確認。 テスト対象のコントローラはこんな感じ。 controllerとallowでメソッドの戻り値をすげ替える allowを使えばメソッドの挙動をすげ替えることが出来る。Railsの場合はcontrollerを使えばテスト対
RSpecの feature spec で href の無い a タグのテストをしようとしてハマったのでメモ ボタン / リンクの存在 ボタン button や submit <button>ボタンのラベル</button> <input type="submit" value="ボタンのラベル" /> expect(page).to have_button 'ボタンのラベル' リンク a タグはボタンではなくリンクでないとマッチしない <a href="example">リンクテキスト</a> expect(page).to have_link 'リンクテキスト' リンク先 (href) も含めてマッチ expect(page).to have_link 'リンクテキスト', href: 'example' ボタン / リンクのクリック Capybara でクリックさせる ボタン but
What is Better Specs Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration. Better Specs came to life at Lelylan (open source IoT cloud platform) and checking out its test suite may be of inspiration. Better Specs focus on Rails testing, but our goal is to create testing guidelines covering mos
こんにちは。メドピアにjoinして3ヶ月目の保立です。 毎週のように新しい開発が進むため、毎日楽しくソースコードを書かせてもらっています。 テストコードを制するものは、Railsを制す!!! ということで、今回はメドピアのRSpecについてです。 メドピアでは、RSpecを用いてテストコードを書いており、 - 1) models配下に記載するビジネスロジックに対するUnitTest - 2) 機能ごとのEndToEndTest (E2E Test) の2種類のテストコードを書いています。 RSpecについて、書こうと思ったきっかけ RSpecは(というかRuby自体が)様々な書き方で動かすことができるため、統一したルールがないと、書いた人によってバラバラなテストコードになります。 私も初めてRSpecを書いた際に、参考書やソースコードによって書き方がバラバラで、どのRSpecを参考にすれば
パターンに関して把握してなかったのでメモ 環境 $ bundle exec rspec -v RSpec 3.8 - rspec-core 3.8.0 - rspec-expectations 3.8.2 - rspec-mocks 3.8.0 - rspec-rails 3.8.1 - rspec-support 3.8.0 説明 書き方 挙動 他の指定の実行順番 before(:suite) rspecの実行時に1回のみ、RSpec.configureの中でしか使えない 1 before(:context) describeやcontextなどの単位で1回だけ行われる 2 before(:example) 各example、itの実行前に行われる 3 after(:example) 各example、itの実行後に行われる 4 after(:context) describeやcont
Rails Developer Meetup 2019での発表資料です!可読性の高いテストコードを書くためのコツについて話しました
RSpecをどう書くかは著名な方々が既に語り尽くしている印象です。そのため非常に参考となる7つの資料、通称神7*1の紹介をします。 私はこれまでレビュやエンジニアインターンに教える際に何度となく神7のお世話になりました。そん経験を踏まえてどの資料にどのようなことが記述されているか、どんな人が読むべきかを併記します。 神7 Read Everyday Rails - RSpecによるRailsテスト入門 RSpecえかきうた 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita Better Specs { rspec guidelines with ruby } GitHub - willnet/rspec-style-guide: 可読性の高いテストコードを書くためのお作法集 Clean Test Code Revised - Speaker D
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く