- 運営しているクリエイター
#アウトプット
[output]サポートモジュール
結合テストでは、「ログインする」というステップを何度も記述した。
テストコードにおいても、繰り返し行う処理をメソッドとして切り離せる。
RSpecでは、サポートモジュールというものを利用して行う。
方法は、specディレクトリ以下にsupportディレクトリを作成。
そこに、.rbファイルを配置。
モジュール名とファイル名は同じにし、名前で何をしているかわかるようにする。
■spec
■su
[output]Rspec結合テスト
●System Spec結合テストは、System Specを用いて記述する。
記述には、カピバラというGemが必要だが、Railsが標準搭載している。
#Gemfilegroup :test do 略 gem 'capybara', '>= 2.15'略end``
そのため、導入処理不要。
ファイル生成は、bundle exec rspec:systemコマンドを実行する。
生成するファイ
[output]コントローラー単体テスト
コントローラーの単体テストについて。
コントローラーのテストは、リクエストに対して想定したレスポンスが生成されるか確認する。
例えば、レスポンスの情報を使って、
・正常にレスポンスが返ってきたかをHTTPステータスコードで
・そのページに表示されるはずの情報が存在するかをbodyの情報で
確認する。
詳細は、後ほど。
まずは、コントローラーのテストファイルの作成から。
これには、rails
[output]モデル単体テスト
モデル単体テストは、バリデーション及びメソッドの検証。
異常系テストにおいては、
presence: trueというバリデーションがあるなら、
カラムを空にして、エラーメッセージを検証する、と
バリデーションを参考にイグザンプルを組み立てやすい。
対し、正常系テストは、
アプリの仕様・動作の流れも参考にして、組み立てる必要がある。
例えばユーザー登録というdescribeならば、
「○○と△△
[output] FactoryBot と Faker
●FactoryBotRspecでテストを行うにあたり、
テスト毎にインスタンスを生成するのは
非効率かつ、可読性が落ちる。
そのためFactoryBotというGemを使用し、
テストで使用するインスタンスをあらかじめ設定しておく。
導入方法は、まずGemfileに下記を記述。
group :development, :test do # Call 'byebug' anywhere in
[Git/GitHub2]今日の学習アウトプット!
GitHub Desktop操作の整理
publish repository:リモートリポジトリ作成+push(commitの反映)
push origin:ローカルの変更をリモートに反映
publish branch:トピックブランチの作成+push
pull request:commit履歴を残す+コメント機能
リ:merge pull request→Confirm merge:リモートのm
[Git/GitHub]今日の学習アウトプット!
Gitはバージョン管理システム。
いつ、誰か、どこを、編集したのか時系列で管理できる。
履歴の確認や、バージョン戻しも容易。
GitHubは、Gitを使ったWebサービス。
複数人での開発を容易にしてくれる。
GitHub Desktopは、GitHubが提供するデスクトップ用のアプリ。
GUIで、操作しやすく、より開発を容易にしてくれる。
Gitを使うには、まずリポジトリを作成する。
これ