2011-08-01 195 views
0

Rspec有很多魔術。我找不到should是什麼以及如何使用它。Rspec中的'應該'是什麼?爲什麼`應該redirect_to`工作?

response.should redirect_to(some_path) 

Rdocshould可以=====~=被調用,並且匹配(是什麼?)。我猜redirect_to(some_path)是匹配器。

但這是什麼意思?這redirect_to是與ActionController::Redirecting#redirect_to相同嗎? should能知道Rails是否調用這個方法?

而其他的事情......

should render_template 
should have_text 

是render_template的ActionView::LogSubscriber#render_template?那麼在should之後可以附加任何Rails方法?而且,Rails沒有方法have_text,那它是什麼?爲什麼should知道?

回答

0

不,那redirect_to是不同的東西。你正在做should redirect_to()時使用的一個是這樣的匹配 - http://relishapp.com/rspec/rspec-rails/v/2-6/dir/matchers/redirect-to-matcher

同樣的,render_template

+0

所以只有三個在Rspec的2匹配器:'redirect_to','render_template'和'be_a_new'?或者有一個完整的清單? –

+0

有幾個。他們中的大多數都記錄在這裏 - http://relishapp.com/rspec/rspec-expectations – Dogbert

相關問題