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^)/