TECH CAMP 19日目 開発の練習段階

自分用のアウトプット。

Rubyファイルをいじって自分のPC上でターミナルを動かして結果を出力するところから始まり。

Ruby on Railsを使ってMVCの仕組みを利用してブラウザ上に表示し。

GitHubを使って複数人で作っていくやり方を学び。

どんどん先へ先へ進んでいく感じです。どんどん難しくはなるんだけど、振り返ると「こんな簡単なことやってたんだ」ってなるので、少しずつレベルアップはしていっているのかなと。
以下まとめ。

GitHubにおいて、ブランチ作成を忘れてmasterブランチで作業をしてしまった場合。
Switch Branchのメニュー
Leave my changes on masterは、元のブランチで書いていたコードを保留にし、新しいブランチでゼロからコードを書く選択。
Bring my changes to (新しいブランチ名)は、元のブランチで書いていたコードを新しいブランチに引き継ぐ選択。

stash(スタッシュ)
現在の作業を一時的に退避したい時や、退避した作業を元に戻したい時などに使用。

複数人での作業中、同じファイルを同時編集してしまった場合。

コンフリクト(競合)
あるファイルにおいてブランチごとに情報が異なり、辻褄が合わない状態になること。

コンフリクトが発生したらResolve conflictsを選択して、ファイルの修正や、片方のファイルの削除などを行い、正しい状態にする。
独断で解消しようとせず、しっかり相談をして行う。

コンフリクトが発生しないように、ブランチ作成前には必ずpullをし、最新のmasterブランチの内容を反映させることが重要。
また、チームで開発をする場合は誰がどのファイルを編集するかなど、しっかり打ち合わせを行って作業をすることも重要。

revert(リヴァート)
間違ってpushしたcommitを取り消すことができる。
commitを削除するのではなく、「commitを取り消すためのcommit」を追加で行う形。

RSpec編に入ります。

RSpecとは、テストコードを書くためのRailsのGem。

テストコードとは、そのアプリケーションの挙動を確認するためのコード。

正常系
「ユーザーが開発者の意図する操作を行った場合の挙動」を確認するコード。

異常系
「ユーザーが開発者の意図しない操作を行った場合の挙動」を確認するコード。

単体テストコード
モデルやコントローラーなどの機能ごとに問題がないかを確かめる。

結合テストコード(統合テストコード)
ユーザーがブラウザで操作する一連の流れを再現して、問題がないかを確かめる。

テストコードの書き方について

dexcribe(ディスクライブ)
「◯◯について」という意味で、どのようなテストコードを書いているかを説明。

it
どのような結果になることを試しているか、を記述する。

example
itに記述した内容の総称。

expect(1 + 2).to eq 3
1 + 2の結果は3になる、ということを表す。

マッチャ
expectの中の記述と、結果との繋がりを表現するもの。
上の例だと eq がこれにあたる。

rspecコマンド
specディレクトリ以下に書かれたRSpecのテストコードを実行するためのコマンド。

rails_helper
Railsにおいて、RSpecを利用する時に共通の設定を書いておくファイルのこと。

valid?
「正しいかどうか」を判別するメソッド。
作成したデータが正しく保存される場合はtrue
誤っている場合はfalseを返す。
また、なぜ保存されないかのエラーメッセージも作成される。

errorsメソッド
valid?にて判定されたデータのエラーを表示する。

full_messages
errorsに続けて記述すると、生成されたエラーの中からエラーメッセージを出力できる。

include
マッチャの一つ。
Aの中にBという文字列が含まれているか、を確認できる。

FactoryBot
インスタンスをまとめることができるGem。

build
ActiveRecordのnewと同じような意味のメソッド。
インスタンスを生成する。

before
全てのテストコードを実行する前にセットアップを行うことが出来る。

Faker
ランダムな値を生成するGem。
Faker::Name.initials(number: 2) ←2文字のイニシャル生成
Faker::Internet.free_email ←メールアドレス生成
Faker::Internet.password(min_length: 6) ←6文字以上のパスワード生成

ここまで!

実際に動かしてみないと身につかないような内容も多いと思うので、理解度は半々くらいですが、どんどん先に進めていきたいと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする