マガジンのカバー画像

アウトプット

9
学習毎に行なっていたアウトプットを発信に転用。 日々のプログラミング学習で学んだことを、言語化。
運営しているクリエイター

#プログラミング

[output]コントローラー単体テスト

[output]コントローラー単体テスト

コントローラーの単体テストについて。

コントローラーのテストは、リクエストに対して想定したレスポンスが生成されるか確認する。

例えば、レスポンスの情報を使って、
・正常にレスポンスが返ってきたかをHTTPステータスコードで
・そのページに表示されるはずの情報が存在するかをbodyの情報で
確認する。

詳細は、後ほど。
まずは、コントローラーのテストファイルの作成から。

これには、rails

もっとみる
[output]モデル単体テスト

[output]モデル単体テスト

モデル単体テストは、バリデーション及びメソッドの検証。

異常系テストにおいては、
presence: trueというバリデーションがあるなら、
カラムを空にして、エラーメッセージを検証する、と
バリデーションを参考にイグザンプルを組み立てやすい。

対し、正常系テストは、
アプリの仕様・動作の流れも参考にして、組み立てる必要がある。
例えばユーザー登録というdescribeならば、
「○○と△△

もっとみる
[output] FactoryBot と Faker

[output] FactoryBot と Faker

●FactoryBotRspecでテストを行うにあたり、
テスト毎にインスタンスを生成するのは
非効率かつ、可読性が落ちる。

そのためFactoryBotというGemを使用し、
テストで使用するインスタンスをあらかじめ設定しておく。

導入方法は、まずGemfileに下記を記述。

group :development, :test do # Call 'byebug' anywhere in

もっとみる
[Rspec/テストコード]今日の学習アウトプット!

[Rspec/テストコード]今日の学習アウトプット!

テストコードとは、アプリケーションの動作確認をするために書くコード。
品質の担保のために重要な工程。

また、どんなテストが必要か把握するには、アプリの仕様への理解が必要。
逆言うと、テストコード記述は理解を深めるのを助ける。

理解を深めるにあたって、ポイントは3つ。
・細かい記法は、使用する際に調べれば良い
・それより、ここで何を確認したいのかを理解する
・挙動で気になる点があれば、処理を止め

もっとみる