Open38
RSpec勉強していくよ

お試しでスクラップを使っていく!

やることリスト
- Gitのセットアップと復習
- Rails, Ruby インストール
- RSpecのセットアップ
-
everydayrails-rspec-2017を読んでいく
- 3章
- 4章
- 5章

Git復習
- M1 macbook Air にGitインストールをしていくよ
- Githubにリポジトリをつくるよ

ターミナルでgit -v
してみる。
確かにインストールされてないのでインストールする。

でけた

もう一度git -v
ほむ

ユーザー名とメールアドレスを設定

githubにリポジトリを作成
Progate記事を参照

でけた

SSHの設定をしていく
SSHとは、Secure Shell(セキュアシェル)の略称で、リモートコンピュータと通信するためのプロトコルです。 認証部分を含めネットワーク上の通信がすべて暗号化されるため、安全に通信することができます。

ls ~/.ssh
ディレクトリないよと言われる

作成どね

繋がっちゃ

index.htmlをプッシュして作成完了

SSH キーを ssh-agent に追加して準備完了

Rails, Ruby インストール
- Homebrewをインストール

3章
- モデルのテストをする=アプリケーションのコアとなる部分をテストする
- describe hogehoge(テスト対象のモデルなど)
- it "fugafuga"(テスト対象の振る舞いを列挙する)
- 振る舞いに対して、期待する結果はひとつ

モデルスペックを作成する
手作業で作成してもいいが、ジェネレートした方が間違いがなくて楽

- バリデーションのテストは1,2行で書ける
- テスト自体の有効性は以下の2つで証明できる
- テスト自体を失敗するように書き換える to ⇔ to_not
- アプリケーションコードを期待する結果が得られないように書き換える

確かにこう並ぶときれいに振る舞いがわかるなぁ

変数には、変数の使える範囲(有効範囲)が決まっています。これをスコープと言います。

- これまで使ったマッチャ
- be_valid
- eq
- include
- be_empty
- RSpecデフォルトのマッチャ

- describe
- クラスやシステムの機能に関するアウトライン
- context
- 特定の状態関するアウトライン
- describeと交換可能
- before
- 可能な限りbefore(:each) を使う
- after
- 後片付けが必要になるのであれば使う

ほむ

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


- build
- テストオブジェクトをメモリ内に保存する
- create
- テスト用データベースにオブジェクトを永続化する

ユニークなバリデーションを持つフィールドにはシーケンスを作成する

Factory bot の重複を減らす
- ファクトリの継承を利用する
- トレイトを利用する

コールバックを利用すれば複雑なテストシナリオも簡単にセットアップできる

ファクトリを使うにあたって
- メリット
- 必要なデータがあっという間に作れる
- テストコードも短くなる
- デメリット
- 予期しないデータが作成される可能性がある
- テストが遅くなる可能性がある
テストの読みやすさと速さを保つために色々な組み合わせが必要