mintestでの遷移テスト
mintestでは status_codeを利用。でもキャッシュには注意!!
Railsでのテストコードに関して
これまではrspecを利用してテストしていた。
が、現在Railsに標準でつくのはminitestになっている。
できるだけ、標準を使うべきという指摘もあり。
また自分もそう思うのでminietstへ移行してみた。
minitestへの移行
まずはシステムテストを書こうと思ったんだけど
scaffoldで作成時に、自動で書いてくれるコードを見ても遷移テストがない。見落としてるかもだけど。
assert_responseだと思ったけど情報少なかったので残す。
rspecはあるんだけどね。
minitestでの遷移テスト
やりたいことrspecだと
visit root_url
expect(page).to have_http_status(:success)
minitestだと
visit root_url
assert_equal 200, status_code
:success とか用意されてると嬉しいよね。 200番台ならば成功と判断できるやつ。
これでうまくいくと思ったら304が返って来てうまく行かなかった。 原因調べたらどうもpoltergeistの仕様でキャッシュ使っちゃうようで 304ステータス:エラーじゃないけど更新されてないよ。キャッシュがあるよ〜。
ということで
page.driver.clear_memory_cache
を事前に書いておけばキャッシュがクリアされて期待する200コードが返ってきました\(^o^)/