Capybara使って結合テストの話
こんばんはー!!
せーです!テックキャンプ13日目!
13日目と言っても今日はオフなのでテックキャンプとしての学習はないです😅
しかし、勉強の習慣がついて来たのか気づけばプログラミングしてました笑
そこで今日は最近苦戦してるRSpec、テストコードの結合テストのアウトプットをしようと思います☺️
Capybaraと言うgemを使い結合テストしていきます!
まず最初にテストコードにはざっくり2種類に分けられますね!
部分テストと結合テストです☺️
部分テスト→はコントローラーやモデルが各々が正しい挙動をするかのテスト
結合テスト→実際のユーザーが行う動きを想定して正しい挙動をするかのテスト
結合テストをする際にも最初に正常系と異常系に大別してそれぞれ詳しく深掘りしていくのですが、部分テストに比べて記述量も増えるので難しいですがこればっかりはもう慣れしかないかなと💦
実際に挑戦してみてこの結合テストは「実際のユーザーの動きを想定しながらやる」ことが大切だなと感じました!
例えばログイン機能のテストであれば
トップページに移動する
↓
ログインボタンがある
↓
新規登録ページに移動する
↓
以下割愛
このよくある流れをコードで表していくのですが、テストコードに使うコードの種類をある程度知っておかないと全く歯が立たないので、最近覚えたてのコードたちを紹介し抵抗と思います😄
visit→ページに実際に移動すること(getと似ていますが、リクエストのため明確に違いがあります)
fill_in→実際に文字列をフォームに入力できる
have-link→リンクの存在を確認する
find().click→実際のクリックを再現できる
find_link().click→a要素で作られるリンクをクリック
hover→特定の要素にカーソルを合わせた時の動作
今日学んだのはこんな感じです!
こうやってみてみると結構単語の意味が分かればなんとなく使えそうな感じがしました!
これらを駆使して動作テストをしていくのですが、正直まだまだです😭
でも地道にやればきっとできるはず!!
で、今日伝えたかったのは分からないコードとかあったら積極的に英語の意味を調べましょうってことです笑
僕はずっとそのまま覚えようとしていたのですが、自分で言葉の意味を調べるようにしたらグッとコードの理解できるスピードが上がったきがしました!
そんな感じで、次回もアウトプットしていきます!