我想说,要测试控制器,您需要的是基本功能/集成规范,您可以在其中简单地查找您的部分持有的内容。
feature 'SomeController' do
background do
# setup data
# and anything else you need for authentication, etc. as your site dictates
end
scenario 'viewing the get status page' do
visit some_controller_get_status_path
expect(page).to have_text('WHATEVER IS IN THE LOCAL VAR')
end
end
当我寻求(但经常失败!)时,我更喜欢使用功能规范而不是控制器规范,以使我的控制器如此简单,以至于在它们中没有太多要测试的东西。有了功能规格,我觉得我从测试中获得了更多关于我的应用程序如何工作等方面的信息。
编辑:对不起......太早进入了:)。
对于控制器,您可以按照以下方式直接测试 var 值:
describe "Your Controller", :type => :controller do
describe "GET get_stuff" do
it "assigns a value to status_name" do
get :get_status
expect(assigns(:status_name)).to eq(['VALUE'])
end
end
end
对于控制器规范来说,这可能不是 100% 正确(同样,我不经常使用它们),但我认为如果你将控制器规范置于功能/集成规范之上,它应该会让你走上正轨。