RSpecに関するcarolina04のブックマーク (11)

  • RSpecえかきうた|TechRacho by BPS株式会社

    初めまして、takanekoと申します。 入社して以来2年くらい「ブログ書きます!」と言いつつすっぽかし続けたダメWebエンジニアです。 RSpecえかきうた? 「ぼくのあーるすぺっくのかきじゅん」(僕のRSpecの書き順)です。 RSpecの書き方わからない、という方のために、0から書き上げる際の参考になればと思い書きました。 Specを書き始めましょう RSpecにはModel Spec、Feature Spec、Request Spec、System Specなど色々種類がありますが、今回はRequest Specを書いていきます。APIとかのテストをする際に使うSpecです。 書き順がメイントピックなので、細かい実装の妥当性とかは無視して、以下のような簡単な仕様のユーザ登録APIでSpecを書きたいと思います。 API仕様 URL POST /users(format: :json

    RSpecえかきうた|TechRacho by BPS株式会社
  • request spec - Request specs - RSpec Rails - RSpec - Relish

    Request specs provide a thin wrapper around Rails' integration tests, and are designed to drive behavior through the full stack, including routing (provided by Rails) and without stubbing (that's up to you). Request specs are marked by :type => :request or if you have set config.infer_spec_type_from_file_location! by placing them in spec/requests. With request specs, you can: specify a single requ

  • Rails API Testing Best Practices · Matthew Lehner

    Something went wrong! Hang in there while we get back on track Writing an API is almost a given with modern web applications. I’d like to lay out some simple guidelines and best practises for Rails API testing. We need to determine what to test and why it should be tested. Once we’ve established what we will be writing tests for, we will set up RSpec to do this quickly and easily. Basically we’ll

  • Gemfileに書かれるrequire => false とはどういう意味でしょうか?

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

    Gemfileに書かれるrequire => false とはどういう意味でしょうか?
    carolina04
    carolina04 2022/03/30
    “RSpecのように、テスト専用のGemの場合、実運用のときにrequireしても無駄にしかならないので、require: falseとして、必要に応じて手動でrequireする、という運用にすることがあります”
  • 【Rspec】Factory Botで効率的にテストデータを用意する

    はじめに今回は、効率的にテストデータを用意する方法についてまとめていきます。具体的には、「Factory Bot」を使用したテストデータについてです。Factory Botの導入方法から始まり、継承やtraint、コールバックの機能に関して説明していきます。最後には「まとめ」としてFactory Botを使用する際の注意点もまとめていきます。 Factory BotとはFactory Botとは、テストのサンプルデータを簡単に作成することができる構文を提供してくれるgemです。Factory Botには様々な機能が存在し、効率的にサンプルデータを用意するのに適しています。 Factory Botのインストールそれでは、Factory Botの導入を行います。Gemfileのテスト・開発環境において、gem ‘factory_bot_rails’の記述を追加しましょう。 group :dev

    【Rspec】Factory Botで効率的にテストデータを用意する
    carolina04
    carolina04 2022/03/30
    “Factoryファイルは以下のコマンドを叩くことで作成することができます。 bin/rails g factory_bot:model モデル名”
  • FactoryBotにおけるcreateとbuildの違い - Qiita

    FactoryBot(factory_bot_rails)にはinstanceを作るメソッドで buildcreateが用意されている。 以前の職場で自動テストが重すぎて開発に支障が出ていた。 その時に話題に上がったのがテスト中にDBアクセスが多すぎることだった。 その時 createする必要がないものは buildにしましょうという事になったが、どういうことか全く理解してなかった。 なので、今回は buildcreateの違いを理解してみる。 メモリ上にインスタンスを確保する。 DB上にはデータがないので、DBにアクセスする必要があるテストのときは使えない。 DBにアクセスする必要がないテストの時には、インスタンスを確保する時にDBにアクセスする必要がないので処理が比較的軽くなる。

    FactoryBotにおけるcreateとbuildの違い - Qiita
    carolina04
    carolina04 2022/03/30
    “build メモリ上にインスタンスを確保する。 DB上にはデータがないので、DBにアクセスする必要があるテストのときは使えない。 DBにアクセスする必要がないテストの時には、インスタンスを確保する時にDBにアクセ”
  • rspec 「let」と「let!」の違い - Qiita

    #composerが複数のsongを持つものとする Rspec.describe Sample do let(:composer) { create(:composer) } let(:composer_song) { create(:song, composer: composer, title: 'きらきら星') } it '〜〜' do expect(composer).to ~~ end end end ここでは、expect(composer).toのcomposer が出てきたタイミングで、letで定義したcomposerがcreateされる、ということになります。遅延評価と言うそうです。 以下のコードでは、テストは失敗します。 #composerが複数のsongを持つものとする Rspec.describe Sample do let(:composer) { create(

    rspec 「let」と「let!」の違い - Qiita
    carolina04
    carolina04 2021/09/20
    “letは、定義した定数が初めて使われたときに評価されます。”
  • ActiveJob::QueueAdapters::TestAdapter

    carolina04
    carolina04 2021/09/12
    “The test adapter should be used only in testing. Along with ActiveJob::TestCase and ActiveJob::TestHelper it makes a great tool to test your Rails application. To use the test adapter set queue_adapter config to :test. Rails.application.config.active_job.queue_adapter = :test”
  • https://www.web-development-kb-ja.site/ja/ruby-on-rails/rspec%E3%81%A7actionmailer-deliverlater%E3%82%92%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/1050256169/

    carolina04
    carolina04 2021/09/12
    “expect { YourMailer.your_method.deliver_later }.to have_enqueued_job.on_queue('mailers')”
  • テストコードの期待値はDRYを捨ててベタ書きする ~テストコードの重要な役割とは?~ - Qiita

    はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き

    テストコードの期待値はDRYを捨ててベタ書きする ~テストコードの重要な役割とは?~ - Qiita
    carolina04
    carolina04 2021/08/09
    “この時点でテストコードの重要な役割の一つである「対象のコードの仕様がひと目でわかること(仕様書になっていること)」を満たせなくなります。 改善策:期待値はベタ書きする というわけで、こういったケ”
  • RailsにRSpecを導入する方法とやさしい解説

    はじめに Railsを書き始めて5ヶ月目にしてテストフレームワークであるRSpecを業務で書くことになった。書き方を調べたり先輩に聞いたりしながら実際に書ける状態にするまですこし手こずったので記録しておく。 環境 Ruby 2.5.1 Rails 5.1.6 Rspec 3.8 rspec-railsというgemを追加 Gemfileのtestグループの中に rspec-rails というgemを追加。

    RailsにRSpecを導入する方法とやさしい解説
    carolina04
    carolina04 2020/10/11
    pendingのサンプルコードは残したままだとずっとテスト項目として実行されてしまうので消してから書くように気をつけよう。
  • 1