プログラミングOUTPUTブログ

看護師しながらプログラミング学習しています。

テストコード

今日の学び

結合テストコード>
ユーザーの操作を再現してテストを行う

  • トップページに移動する
  • トップページにサインアップページへ遷移するボタンがある
  • 新規登録ページへ移動する
  • ユーザー情報を入力する
  • サインアップボタンを押すとユーザーモデルのカウントが1上がる
  • トップページへ遷移する
  • カーソルを合わせるとログアウトボタンが表示される
  • サインアップページへ遷移するボタンや、ログインページへ遷移するボタンが表示されていない

 

 

・SystemSpecとは結合テストコードを記述するための仕組み。
・CapybaraとはSystemSpecを記述するために必要なGem。
・visit→〇〇のページに移動することを表現できる。visit 〇〇_pathと記述。
・page→現状のページ。visitで訪れた先のページの見える文だけの情報が格納されている。
・have_content→expect(page).to have_content( ' X ' )と記述することで、visitで訪れたpageの中に、Xという文字列があるかどうかを判断するマッチャ。
・fill_in→fill_in 'フォームの名前', with: '入力する文字列'と記述することで、フォームへの入力を行うことができる。
・検証ツール→HTMLの要素や適用されているCSSのコードを確認できる。これでフォームの名前、クリックしたい要素など確認する。
・find( ).click→find("クリックしたい要素").clickと記述することで、実際にクリックができる
・change→expect{ "何かしらの動作" }.to change {モデル名.count}.by(1)と記述することで、モデルのレコードの数がいくつ変動するか確認する。
・current_path→現在いるページのパスを示す。
・hover→find("ブラウザ上の要素").hoverと記述することで、特定の要素にカーソルを合わせたときの動作を再現できる。
・have_no_content→文字列が存在しないことを確かめるマッチャ。

 

テストコード記述して一連の流れが見えるのはちょっと面白いと思ったけど、理解不足でまだ頭がこんがらがってる。MVCの流れをもう一回しっかり理解していこうと思う。