Szh Szh h Szh k Shakira ra Shakira 0i Szh h Lightsoffnow s Rabiosa fsearchn Lyrics w Rabiosa ª Rabiosa z Szh search¡¡¡¡ÉÏÆªËæ±ÊÀï²âÊÔÁËlogin_controller£¬ÎÒÃÇʹÓÃÁ˺ܶàrailsÄÚ½¨µÄ¶ÏÑÔºÍget£¬putµÈ·½·¨À´½øÐвâÊÔ¡£Õâ´ÎÀ´¿´¿´railsÔÚ¹¦ÄܲâÊÔ·½ÃæµÄһЩԼ¶¨¡£
¡¡¡¡1.¡¡¡¡¡¡ HTTPÇëÇóµÄ·½·¨£¨HTTP request method£©
¡¡¡¡ÏÂÃæµÄ·½·¨ÓÃÀ´Ä£ÄâHTTPÇëÇ󲢵õ½Ò»¸ö»ØÓ¦£¨response£©
get()
put()
post()
delete()
head()
¡¡¡¡ÕâÎå¸öº¯Êýÿһ¸ö¶¼ÓÐͬÑùµÄËĸö²ÎÊý£¬ÒÔget()ΪÀý£º
¡¡¡¡get(action, parameters = nil, session = nil, flash = nil)
¡¡¡¡ÏòÖ¸¶¨µÄAction·¢³öÒ»¸öHTTP GETÇëÇ󣬲¢ÇÒÉ趨Response£¬Ëĸö²ÎÊýµÄº¬Òå·Ö±ðΪ£º
¡¡¡¡action£ºHTTPÇëÇóËùÖ¸¶¨µÄij¸ö¿ØÖÆÆ÷£¨controller£©µÄÒ»¸öAction¡£
¡¡¡¡Parameters£º¿ÉÑ¡µÄHash£¬×÷ΪrequestµÄ²ÎÊý¡£
¡¡¡¡Session£º¿ÉÑ¡µÄ£¬SessionµÄHash¡£
¡¡¡¡Flash£º¿ÉÑ¡µÄ£¬flashµÄHash¡£
¡¡¡¡ÏÂÃæÊÇÀý×Ó£º
get :index
get :add_to_cart, :id => @version_control_book.id
get :add_to_cart, :id => @version_control_book.id,
:session_key => 'session_value', :message => "Success!"
¡¡¡¡2.¡¡¡¡¡¡ ¶ÏÑÔ£¨assertion£©
¡¡¡¡³ýÁËÓÐTest:UnitÌṩµÄһЩ»ù±¾µÄ¶ÏÑÔ£¨assertion£©£¬¹¦ÄܲâÊÔ»¹¿ÉÒÔÔÚÖ´ÐÐÇëÇóºóʹÓÃһЩ×Ô¶¨ÒåµÄ¶ÏÑÔ¡£ÀýÈçÏÂÃæµÄ£º
¡¡¡¡l¡¡¡¡¡¡¡¡ assert_response(type, message=nil)
¡¡¡¡Åжϵõ½µÄHTTPÏìÓ¦ÊÇÒ»¸öÊý×ÖÐ͵Ä״ֵ̬»òÕßÏÂÃæÁоٵıê¼Ç£¬ÕâЩ±ê¼Ç¸²¸ÇÁËHTTPÏìÓ¦Öµ£¬ÀýÈç:redirect¶ÔÓ¦300-399¡£
:success
:redirect
:missing
:error
¡¡¡¡Àý×Ó£º
assert_response :success
assert_response 200
¡¡¡¡l¡¡¡¡¡¡¡¡ assert_redirected_to(options = {}, message=nil)
¡¡¡¡ÅжÏ×îºóÒ»¸öÇëÇóµÄActionÊÇ·ñ±»Öض¨Ïòµ½ÆäËûµÄcontroller£¬action»òÒ³Ãæ£¬ÀýÈ磺
¡¡¡¡assert_redirected_to :controller => 'login'
¡¡¡¡assert_redirected_to :controller => 'login', :action => 'index'
¡¡¡¡assert_redirected_to "index.html"
¡¡¡¡l¡¡¡¡¡¡¡¡ assert_template(expected=nil, message=nil)
¡¡¡¡ÅжÏÒ»¸öÇëÇóÊÇ·ñʹÓÃÁËÖ¸¶¨µÄtemplateÀ´Ã軣¨render£©
¡¡¡¡ÀýÈ磺
¡¡¡¡assert_template 'store/index'
¡¡¡¡l¡¡¡¡¡¡¡¡ assert_tag(conditions)
¡¡¡¡ÅжÏÔÚÒ»¸öÏìÓ¦µÄbodyÄÚÊÇ·ñÓзûºÏÖ¸¶¨Ìõ¼þµÄtag£¬Ìõ¼þµÄ²ÎÊý±ØÐëÊÇÏÂÃæµÄkeysÖеÄÒ»¸ö»ò¶à¸ö¡£
¡¡¡¡:tag£¬½ÚµãµÄÀàÐÍ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡assert_tag :tag => 'html'
¡¡¡¡:content£¬ÅжϽڵãµÄcontentµÄÖµ
¡¡¡¡assert_tag :content => "Pragprog Books Online Store"
¡¡¡¡:attributes£¬Ò»×éÌõ¼þ£¬ÓÃÀ´ÅжϽڵãµÄÊôÐÔ
¡¡¡¡assert_tag :tag => "div", :attributes => {}
¡¡¡¡:parent£¬Ò»×éÌõ¼þ£¬ÅжϽڵãµÄ¸¸½Úµã
¡¡¡¡assert_tag :tag => "head", :parent => {}
¡¡¡¡:child£¬Ò»×éÌõ¼þ£¬Åжϵ±Ç°½ÚµãµÄ×î½üµÄÒ»¸öÖ±ÊôµÄchild
¡¡¡¡assert_tag :tag => "html", :child => {}
¡¡¡¡:ancestor£¬Ò»×éÌõ¼þ£¬Åжϵ±Ç°½ÚµãµÄ×î½üµÄÒ»¸ö׿ÏÈ
¡¡¡¡assert_tag :tag => "div", :ancestor => {}
¡¡¡¡:descendant£¬Ò»×éÌõ¼þ£¬Åжϵ±Ç°½ÚµãµÄ×î½üµÄÒ»¸ö×ÓËï
¡¡¡¡assert_tag :tag => "html", :descendant => {}
¡¡¡¡:children£¬Ò»×éÌõ¼þ£¬ÅжϽڵãµÄchildrenµÄÊýÁ¿£¬Ê¹ÓÃÏÂÃæµÄkeyÖеÄÈÎÒâÒ»¸ö»òÒ»×é
¡¡¡¡:count£¬Ò»¸öÊý×Ö»òÒ»¸ö·¶Î§£¬Ö¸¶¨ÒªmatchµÄchildrenµÄ±àºÅ¡£
¡¡¡¡:less_than£¬childrenµÄ±àºÅ±ØÐëСÓÚÖ¸¶¨µÄÊý×Ö¡£
¡¡¡¡:greater_than£¬childrenµÄ±àºÅ±ØÐë´óÓÚÖ¸¶¨µÄÊý×Ö¡£
¡¡¡¡:only£¬µ±¼ÆËãchildrenµÄÊýÁ¿ÊÇʹÓõÄÒ»×éÌõ¼þ¡£
¡¡¡¡Àý×Ó£º
¡¡¡¡assert_tag :tag => "ul",:children => {} }
¡¡¡¡¸ü¶àµÄ¶ÏÑԲο¼£ºclasses/Test/Unit/Assertions.html.
¡¡¡¡3.¡¡¡¡¡¡ ±äÁ¿
¡¡¡¡µ±Ò»¸öÇëÇó£¨request£©±»Ö´ÐУ¬¿ÉÒÔÒÀ¿¿ÏÂÃæµÄ±äÁ¿À´½øÐжÏÑÔ¡£
¡¡¡¡l¡¡¡¡¡¡¡¡ assigns(key=nil)
¡¡¡¡ÓÉ×îºóÒ»¸öaction¸³ÖµµÄʵÀý±äÁ¿¡£
¡¡¡¡assert_not_nil assigns["items"]
¡¡¡¡assigns±ØÐë±»Ö¸¶¨Ò»¸ö×Ö·û´®×÷ΪË÷Òý£¬µ«ÊÇÉÏÃæµÄassert_not_nil assigns["items"]È´²»»áÆð×÷Óã¬ÒòΪitemsÊÇÒ»¸ö¹Ø¼ü×Ö£¬¿ÉÒÔʹÓÃÒ»·½·¨µ÷ÓÃÀ´´úÌæ£º
¡¡¡¡assert_not_nil assigns(:items)
¡¡¡¡l¡¡¡¡¡¡¡¡ session
¡¡¡¡sessionµÄÒ»¸öhash¶ÔÏó£º
¡¡¡¡assert_equal 2, session[:cart].items
¡¡¡¡l¡¡¡¡¡¡¡¡ flash
¡¡¡¡ÔÚsessionÀï´æ·ÅµÄflashµÄhash¶ÔÏó
¡¡¡¡assert_equal "Danger!", flash[:notice]
¡¡¡¡l¡¡¡¡¡¡¡¡ cookies
¡¡¡¡Óû§Ê¹ÓõÄcookiesµÄhash¶ÔÏó¡£
¡¡¡¡assert_equal "Fred", cookies[:name]
¡¡¡¡l¡¡¡¡¡¡¡¡ redirect_to_url
¡¡¡¡ÉÏÒ»¸öactionÖØ¶¨ÏòµÄÍêÕûµÄurl
¡¡¡¡assert_equal "login", redirect_to_url
¡¡¡¡OK£¬Õâ´Î¾Íµ½ÕâÀÏ´μÌÐø»áµ½controllerµÄ²âÊÔ¡£