Ruby

Everyday Rails - 13日目 前半

10. その他のテスト rakeタスクをテストする rakeタスクファイルにモリモリ書くのではなく、ビジネスロジックを担当するクラスを作成し、そこに閉じ込めちゃいましょう、という話。 そうすることでテスタビリティが向上します、ということ。 personモデル作…

Everyday Rails - 12日目

続けたい日記が続けられなかった。 Android本は返却要請があったので、中止。残念。 しかし、あの本は良かった。Everyday Rails続き! p.106、107 APIのテスト Web APIのテスト。 Web APIってただJSON形式などで返しとけばOKなんだろ?って思ってたけど、そ…

Everyday Rails - 11日目

10.その他のテスト VCR、geocorder VCRは外部API用、結果保存ライブラリかな。 vcr/vcr vcr/vcr · GitHubgeocorderは地図情報(位置情報か)を取得するライブラリ。 alexreisner/geocoder alexreisner/geocoder · GitHubGemfileに、それぞれを追加。 以下テ…

Everyday Rails - 10日目

10.その他のテスト Timecop Gemfileに testグループに gem 'timecop' を追加。 例を通すためにcontrollerを作る。indexだけあればよい。 ./bin/raile g controller PayTaxes index ./app/controllers/pay_taxes_controller.rb class PayTaxesController < Ap…

Everyday Rails - 9日目

modalが表示しきる前にスクリーンショットを撮っていた件を修正。 適当にsleep 0.5などとしてやると撮れた。0.2だと表示途中だった。面白い。 jQueryでAjaxを使う場合は以下の方法が紹介されていた。 Automatically wait for AJAX with Capybara 10.その他の…

Everyday Rails - 8日目

10.その他のテスト この章はコード部分がないので簡単に、テストが通るくらいの感じで。Emailのテスト部分。 bmabey/email-spec spec/rails_helper.rb # : require 'email_spec' RSpec.configure do |config| # : # Email Spec config.include EmailSpec::He…

Everyday Rails - 7日目

9.スペックの高速化 subject, let, specify shoulda-matchers Gemfile の testグループに gem 'shoulda-matchers' を追加d 書き方を書籍とちょっと変える カスタムMatcerは使い方が難しそう よほど重複しない限りは使わないほうが見通しが良さそう spec/sup…

Everyday Rails - 6日目

前回、P.64でcreateのテストにidをパラメータで渡しているが(書籍自体そうなっている)、不要なので削除しておく。あってもStrong Paremetersの機能で弾かれるので、問題無いと言えばない。 8.フィーチャスペック まず、この章ではブラウザを使ったテストを…

Everyday Rails - 5日目

P.57までの課題 contacts_controller_spec.rbにテストを追加。 describe 'PATCH hide_contact' do before do @contact = create(:contact) end it 'marks the contact as hidden' do patch :hide_contact, id: @contact expect(@contact.reload.hidden?).to …

Everyday Rails - 4日目

P.57まで。 Controllerのテスト。 特に難しい点はなし。もっと纏められそうだけど、後で纏めるのかな? require 'rails_helper' describe ContactsController, type: :controller do describe 'GET #index' do context 'with params[:letter]' do it 'popula…

Everyday Rails - 3日目

P.44 まで。 FactoryGirlのファイルは、application.rbに以下設定が無くても、設定したのと同じ場所に作成される。 g.fixture_replacement :factory_girl, dir: 'spec/factories' factoryファイルはrakeコマンドで作成できる。 また、ディレクトリ掘るとプロ…

Everyday Rails - 2日目

P.32まで。特に難しいところもない。 わざと冗長に書いて、そこから簡潔にするという勉強方法の第一歩目、なので、面倒ではあった。 require 'rails_helper' describe Contact, type: :model do it "is valid with a firstname, lastname and email" do cont…

Everyday Rails - 1日目

Nitrous.IOをちらほら耳にするので触ってみようかと。 以下書籍を写経してみる。 Everyday Rails - RSpecによるRailsテスト入門NitrousP.14まで。 ./bin/rspecは以下コマンドで作成する必要がある。READMEに書いてある。 $ bundle binstubs rspec-corerspec/…