controllerのテストの書き方
controllerのテストから他のcontrollerを呼び出すには?
scaffoldが吐き出したテストの雛形からcontrollerを呼び出す際には以下のように記述します。*1
post :login, :login => { :user => 'pastaonly', :password => 'password' }
第一引数がaction名、そして第二引数のハッシュがparametersになります。
上記記述にはcontrollerの指定がありません。また、postにはcontrollerを指定することはできません。
実はcontrollerの指定はまったく別の場所で行なわれているのです。
scaffoldが自動生成したコードを眺めると、その冒頭に以下のような記述があります。
def setup @controller = UsersController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new end
怪しい、@controllerが非常に怪しい。そして、やはり怪しい奴が犯人でした。
postメソッドで呼ばれるcontrollerはこのインスタンス変数が指定しています。
ですので、とあるテストの中から他のcontrollerが呼びたいなと思ったときは
def test_logout @controller = PublicController.new post :login @controller = UsersController.new post :logout end
のような記述をすればOKです。
*1:HTTP Request Methodの[get,post,put,delete,head]の5つ内、postを例に記述します
Ruby本を購入しました
いつもGoogle先生でごまかしていた、Rubyに対する基礎知識。
そろそろ限界となってまいりました。
というわけで、いよいよRuby本を購入です。
さてしかし、どれが良いのかわからないので、
kikainekoさんに勧めていただいたものをまずは購入。
http://www.amazon.co.jp/exec/obidos/ASIN/4894714531/249-9546798-5041101
こやつはAmazonさんなので月曜には届くことでしょう。
さて、もう一冊、こちら。
http://www.amazon.co.jp/exec/obidos/ASIN/4873110238/
天下のオライリー本。
むっ、在庫がない。。。
仕方なくBookStore談に取り寄せの依頼を。
一週間程度で届くそうな。
■
Railsのペアプロに見せかけた、CSS作成がメインのペアプロ。
CSSへの知識、及びRailsの開発手順への理解が乏しく、右往左往なマウス捌き。
これではよくないと想い、Railsの開発手順を簡単にまとめてみる。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- テーブル作成
- ganerate module
- ganerate contoller
+併せてrhtmlも作成
(新規ならば)
- layout.rhtml作成・修正
+:contoller,:action,CSSの修正
+逐次CSS自体も作成・修正
+Contoroller内で「layout 'layout'」と指定できる
- 内包されるrthmlを作成・修正
- partialの呼び先を作成
- rhtmlから呼ばれるメソッドを作成
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
この後、http://rails.homelinux.org/のチュートリアルを試行。
Rubyの基本文法を学びつつ、2Day分は完了。
ニヤリな知識を手に入れた。それはまた別の日記で。