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 でページも確かめている。