Rails3レシピブック 190の技【電子書籍】[ 高橋 征義 ]

capybaravisit した後のステータスコードのチェックをするにはどうすればよいか。上の本によると、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 でページも確かめている。

Rails3レシピブック 190の技【電子書籍】[ 高橋 征義 ]