テスト

FactoryBot難しい...

ジョブを実行すると、ある条件の時にレコードが更新されることをテストしたかったのですが、なかなかテストが通らないため、binding.pryを駆使してデバックしておりました。 しかし、binding.pryだときちんと値が更新されているのに、なぜかテストは落ちてお…

aws-sdkというgemのバージョンアップをした

昨日あるアプリに入っているasw-sdkというgemのアップデートを行いました。(まだステージングのみ) aws-sdkはAmazon S3、Amazon EC2、DynamoDB など、AWS の多くのサービス向けの Ruby クラスを提供してくれるgemです。 Amazon S3のAWS署名バーション2が201…

Everyday Rails - RSpecによるRailsテスト入門の輪読会をした

本日はTamarbで、「Everyday Rails - RSpecによるRailsテスト入門」の輪読会をしました! この本は以前一度読んだことがありましたが、理解しきれていない部分も多く、とても勉強になりました! この本にはサンプルアプリケーションが用意されており、それを…

accepts_nested_attributes_forを使った時のrequest specでのパラメータ指定

問題 menuを作成するrequest specでパラメータ の指定の仕方がおかしかったようで、テストが落ちておりました。 menuモデルでは, accepts_nested_attributes_for :menu_images というようにmenu_imagesを子レコードとして作成するようにしておりました。 以…

postgresqlのセッションを切断

テストが実行できなくなってしまい、焦ることがありました。 ターミナル再起動しても相変わらずテストが実行されないままでした。 rake db:resetしようと試みてもエラーでリセットできませんでした。 しかし、ログをたどっていったところ、どうやらポスグレ…

capybaraで取得した要素の中身を確認する

テストが通らない原因を探るため、binding.pryを仕込んでデバッグをしておりました。 止まってくれたところで、 find(‘#client_check_by_id’) とすれば、その要素を取得は出来るものの、その中身を見たい!と思い、そのやり方を調べてみました。 [1] pry(#<RSpec::ExampleGroups::Nested::Nested_2>)></rspec::examplegroups::nested::nested_2>…

テストDBだけリセットしたい(postgresql)

テストデータベースだけリセットしたい!と思うことがありました。 調べてみたところ、以下の手順でテストデータベースをリセットできるようでした! ①データベースをtestに切り替える $ bin/rails db:environment:set RAILS_ENV=test ②データベースを消す $…

意味のあるテストデータの作成

FactoryBotを使ったデータ作成について基礎を理解したいと思うことが多々ありました。 Everyday Rails Rspec 第4章、「意味のあるテストデータの作成」についてまとめる機会を頂いたので、こちらに下書きを書いていきたいと思います! github.com 内容 ・フ…

ダウンロードtsvのテスト

「tsvファイルのダウンロードができる」というテストのやり方がわかりませんでした。 調べて試したところ、以下のような書き方で確かめることができるようです。 describe 'Hogeユーザーダウンロードtsv' do it 'ダウンロードできる' do visit admin_hoge_us…

FactoryBotでtraitを使ってアソシエーション先のデータも作る

FactoryBotでアソシエーションが絡んだデータの事が今ひとつ理解できておりませんw 今日はtraitを使ってアソシエーション先のテストデータも作るということを覚えました。 そのやり方についてです。 ファクトリーを設定 通常のFactoryBotを用いたデータ生成…

rescue_fromは下に書いたものから評価される

エラーページ をrescue_fromを使って以下のように設定しておりました。 class Foo::BarController < ApplicationController 略 rescue_from ActiveRecord::RecordNotFound, with: :render_404 rescue_from ActionController::RoutingError, with: :render_40…

RSpecでアソシエーションしたデータの作成で手間取った

タイトルの通りなのですが、RSpecでテストを書く際、アソシエーションしたテストデータの作成にだいぶ苦戦しましたw なんとかうまく定義することが出来たので、その方法についてメモしておこうと思います!! FactoryGirlをインストール はじめ、factoryを使…

テストデータを大量に作ってベンチマークテストをする

テストデータでtitleカラムにindexを貼った時・貼ってない時の検索スピードを比較したいと思い、以下のようなコードを書いてみました。 spec/models/task_spec.rb require 'rails_helper'require 'benchmark'RSpec.describe Task, type: :model do describe …

feature specで順番の並び替えが正いかテスト

feature specで順番の並び替えが正いかテスト feature specでテストでTaskの作成日時の順番で並び替えができているかをテストする、という課題があったのですが、どうすれば良いか分からず詰まっておりました。 ググってもあまりでてこない。。。 これであっ…

CircleCIの設定で詰まった

今日は新しく覚えることがたくさん出てきましたw その中でも、CircleCIの設定でかなりつまずきました。。。 なので忘れないように書き残しておこうと思います!! どんなエラーで詰まっていたか 以下のエラーが出ており、ずっとCircleCIが落ちていました。 …

RSpecの練習

テストコードをあまり練習せず過ごしてきてしまったので、今回きちんと基礎から練習してみることにしました!! EverydayRails-RSpecによるRailsテスト入門を購入&伊藤さんのQiitaの記事を参照しながら、自分で書いて試してみました。 leanpub.com qiita.co…

テストコードを書く意義

今までテストコードを書く意味があまり理解できておりませんでした。 本番環境にデプロイした後問題を出さないために大切、と言われているものの、 「それだったら開発環境で実際に動かしてチェックすればいいじゃん」という思いがあり、今ひとつ納得できて…