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

はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なRSpecの構文や、僕が普段よく使う便利な機能をまとめてみます。 具体的には以下のような構文や機能です。 describe /it / expect の役割 ネストした describe context の使い方 before の使い方 let / let!

こんにちは、hachi8833です。 今さらですが、RSpecをやる前に知っておきたかったことを記事にしました。少しさかのぼって、ソフトウェアのテストについても最初に簡単にまとめてみました。 ソフトウェアのテストとは まず、広い意味でのソフトウェアテストは「人間による目視チェック」のようなものも含まれる点にご注意ください。 ソフトウェアの動作確認をどのように行うかは、ソフトウェア開発において常に大きな課題です。 当然ながら、ソフトウェアの動作確認を思い付きでやっていると漏れが発生しやすく、確認のたびにチェック内容が変わってしまったりするので好ましくありません。 そこで、ソフトウェアのテスト方法を体系化し、 誰がやっても同じようにテストできる方法 誰でもテスト計画を策定できる手法 が模索されてきました。 個別のテスト実施はドラゴン桜の名言でいうところの「作業」であり、ひとつひとつはそれほど重
![[Rails] RSpecをやる前に知っておきたかったこと|TechRacho by BPS株式会社](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f0df40072c11178520fcb31a3c122401dbda1bc55%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Ftechracho.bpsinc.jp%252Fwp-content%252Fuploads%252F2012%252F05%252Frspec_eyecatch.png&f=jpg&w=240)
thoughtbot/factory_girlを活用して日々テストを書いているRailsエンジニアの方々、こんにちは、正徳です。 Forkwellでもfactory_girlを使ってテストを書いています。 このfactory_girlには便利機能が多く、とても使いやすいのですが、女心並みに複雑*1なので、一通りの機能をブログにまとめてみました。 factory_girl初心者から、中級者の参考になれば幸いです。 参考にしたページ このブログの内容は全てfactory_girlのGETTING_STARTEDに記載されています。 読まれた事のない方は、是非一読する事をおすすめします。 目次 factory_girlのインストールと設定 factory_girlの使い方(Using factories)buildcreate attributes_forbuild_stubbed 遅延評
Railsのテストで複数のオブジェクトの作成を簡易に行えるFactoryGirl。 FactoryGirlについて基本的なことを知っていることを前提に、RailsでFactoryGirlを使うよく使う機能やTipsをまとめました。 動作確認Rails 4.1.7 Factory Girl 4.4.0 Factory GirlRails 4.4.1 目次 1. Factory Girlのインストール 2. FactoryGirlシンタックスの省略 3. FactoryGirlの使い方あれこれ 3.1. オブジェクトのビルド、作成、スタブ作成、属性取得 3.2. 特定の値を指定してオブジェクトを作成 3.3. ブロックを渡すことで細かな処理を記載可能 3.4. 一度に複数のレコードを作成する 4. Factory定義のあれこれ 4.1. 他の属性に依存する属性を定義する 4.2. fact

SKIPの開発チームでは、当初は品質向上の目的のためにRSpecを導入したのですが、徐々にRSpecの開発スタイルに慣れてくるに従い、BDDの開発スタイルに変化し、いまでは設計開発のツールとして使うようになりました。 BDDに関する詳しい解説は、今回のコードリーディングの範疇(はんちゅう)を超えてしまいますので割愛します。その代わり、大変参考になる記事のURLを紹介しておきます。 グループ機能のデータ構造 早速、SKIPのスペックを読んでいきたいところですが、その前に、SKIPアプリケーションにおけるグループ機能のデータ構造について解説をしておきます。グループ機能の説明は、第1回をご覧ください。 第1回では、いわゆるMVCモデルのViewとControllerに当たる部分のソースコードを中心に説明しましたが、RSpecのスペックを書くのに一番適しているのは、Model(モデル)部分になりま

1年以上経過しており情報が古い可能性があります 環境MacOSX 10.11 RSpec 3.3.2 Capybara 2.5.0 事前に見るべきリファレンス capybara-readme-ja 事象 テストは通っているが、どうもボタンを押せていない。ということが少なからずある。 例えばFacebookのログインページのボタンである。 % rspec xxtest.rb Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} Randomized with seed 2062 アカウント登録フロー FacebookでのログインTop 1 slowest examples (30.18 seconds, 100.0% of total time): アカウント

# インスタンス変数を使う場合 before do @user = User.new(name: 'Taro',email: 'taro@example.com') endit 'is valid' do expect(@user).to be_valid end # letを使う場合 let(:user) { User.new(name: 'Taro',email: 'taro@example.com') }it 'is valid' do expect(user).to be_valid end RSpecを使い慣れている人であれば、おそらくletを使うことが多いと思いますが、初心者の人には違いやメリットがよくわからないと思います。 また、使い慣れている人であっても具体的な違いをぱっと即答できる人は少ないんじゃないでしょうか? ネットを調べていたところ、Stack Overfl

すでに前回のすごいぞRSpec(shared example group編) - ぷろぐらまねがで登場してるけどあらためてletを調べるよ。rspec-core(2.5.1)/features/helper_methods/let.featureを参考に。 let 要するにメモ化するわけで、同一サンプル内だと同じオブジェクトを使いまわせるのだな。違うサンプルでは改めて評価される。さらに遅延評価なので実際に評価されるのは最初にメソッドが呼ばれたときだ。 $count = 0 describe 'let' do let(:count) { $count += 1 }it 'memoizes the value' do count.should == 1 count.should == 1 endit 'is not cached across examples' do count.shou
Ruby exposes several different methods for handling equality: a.equal?(b) # object identity - a and b refer to the same object a.eql?(b) # object equivalence - a and b have the same value a == b # object equivalence - a and b have the same value with type conversionsNote that these descriptions areguidelines but are not forced by the language. Any object can implement any of these methods with i
Photo by Menlo Innovations こんにちは、今回はpaiza開発担当の佐藤がお送りします。 先月からpaizaではLeaning機能が公開されておりますが、皆さん挑戦してみて頂けたでしょうか?解くと★マークが溜まっていく、というちょっとした遊び心もあります。このゲームっぽい流れは今後もうちょっと強化されるかもしれませんので、楽しみにしていて下さい。 さて今回のブログではpaizaの練習問題(paiza Learning)を題材に、いまさらでは有りますがRSpecを使いテスト駆動*1で解いてみる、というちょっと変わったことをやってみたいと思います。※最後にJUnitのコードも有ります。 すでにTDDで開発している場合は良いのですが、これから新たにテスト駆動をやってみようという場合に、いきなり業務の中で試してみる訳にも行かず、かといって何から取り組もうかと悩んでしまったり

みなさんはこんなふうにRailsアプリケーションを作ったことはありませんか?たとえば、ブラウザをポチポチとクリックするだけでテストを終わらせて「たぶん大丈夫」と思い込んだり、「とにかく全部うまくいきますように」とただ祈るだけだったり……。 心配しないでください。それは誰もが通る道です。アプリケーションのテストやテスト駆動開発はRails開発における重要なトピックですが、巷の参考書を見ると適当な説明で済ませているものも多かったりします。本書「EverydayRails - RSpecによるRailsテスト入門」では、どのようにして私がそうしたテクニックを身につけたのか、そして、どのようにしてコードの信頼性を上げ、ブラウザ上で延々とテストしなくて済むようにしたきたのかをみなさんに説明します。 対応バージョンについて2024年1月のアップデートで、本書のコンテンツをRails 7.1とRSpe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く