テスト

AAA (arrange, act, assert)について知った

Twitterを眺めていたら、AAA (arrange, act, assert) という、テストを書くにあたっての指針について知りました。 きっかけツイート:https://twitter.com/jnchito/status/1493781049767505920 arrange は 準備という意味で、データの作成や条件の設定など a…

「iOSテスト全書」の輪読会に参加した

本日はiOSの社内勉強会に参加しました! iOSの勉強会ですが、誰でも参加OKだったので、私も参加しました。 「iOSテスト全書」の輪読会を行なっており、今回は第二章の「ユニットテスト(概要)」の章を読んでいきました。 peaks.cc iOSのテストの本なので、も…

Tamarb Rspecモブプロ 〜共通メソッドをモジュールへ切り出す〜

本日はTamarbのRspecモブプロがあり、今回はfeature specを書き進めていきました。 以前と同様、エディタごとにチーム分けをし、自分は人数比的にRubyMineチームへ参加しました。 知ったこと 1つのファイル内以外でも使いたいメソッドはモジュールに切り出…

[CircleCI] "You must use Bundler 2 or greater with this lockfile."というエラー

CircleCIの設定を自分でも書いてみたいと思い、自分の個人アプリにCircleCIを導入しておりました。 エラーが出て少々ハマった部分があったので書いておこうと思います! エラー内容 以下のように、bundle installを実行する部分で `You must use Bundler 2 o…

モックが機能してくれない

あるjobのテストで、モックを使おうとしておりました。 ちゃんとかけている気がするのですが、モックが機能してくれておりません。。。 解決できておりませんが、試してみた内容について書いておこうと思います。。。 どんなモックを作りたいか pdfを作成す…

Rspecモブプロ

今日はTama.rbでRspecモブプロを行いました! 今回はcontroller specの章をエディタでチーム分けしてやっていきました! (自分はVScodeも使うのですが、人数的にRubyMineチームへ入りましたwVScode大人気だw) モブプロする中でこれは便利だと思ったことにつ…

rspecでモックを使う

apiが絡む部分のテストで、実際にはリクエスト投げて欲しくない部分がありました。 そんな時はモックを使うと便利だと知ったので書いておきます! 具体的な状況 HogeBuildJobの中にapiのリクエスト投げてしまう処理がありました。 最初、api投げる処理の直前…

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…

テストコードを書く意義

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