rails capybara: visit の後のステータスコードをチェックする方法
capybara で visit した後のステータスコードのチェックをするにはどうすればよいか。上の本によると、response.status.should be(200)
と書けばよさそうな感じで説明してある。
しかし、そんなことやっても
Failure/Error: response.status.should be(200)
NoMethodError:
undefined method `status' for nil:NilClass
と言われて終わるのである。たとえばこれを get 'path'
のように書くと、response は nil
ではなくなる。そして、
Failure/Error: response.status.should be(200)
expected #<Fixnum:401> => 200
got #<Fixnum:605> => 302
と出力される。302は確かにエラーではない・・・が、これだとリクエストをしているだけで、find
, fill_in
などでページ内のオブジェクトを操作することができない。
そこで visit
とやって、page.status_code.should be(200)
とやってみる。成功したのでこれが正解っぽい。save_and_open_page でページも確かめている。