Rspec 使用控制器存根检查标题
Rspec to check title using controller stub
我是 rails 和 rspec 的新手。
我正在使用
rspec-rails 3.0.0
rspec 3.0.0
ruby2.3.5
我写了一个示例控制器
class BaseClass::SampleController < ApplicationController
skip_before_filter :check_privilege
def choose
@page_title = I18n.t('BaseClass.box.chooser_title')
render :layout => false
end
end
其中
BaseClass.box.chooser_title
在config/locale/en.yml中,它的值为"sample title"
我在 app/view 中也有 choose.html.erb 并且它有标题样本标题
我为上面的控制器写了一些Rspec
context "choose" do
it "renders the choose template" do
get :choose
expect(response).to render_template('choose')
end
it "page title should be Sample title " do
get :choose
BaseClass::SampleController.any_instance.stubs(:page_title).returns("Sample title")
obj = BaseClass::SampleController.new
expect(obj.page_title).to eql "Sample title"
end
我想检查 choose.html.erb 的标题是否为 "sample text"。
我有两个问题
我尝试在第二个测试用例中为控制器编写一个存根,
即使我将 :page_title 更改为其他名称,测试用例也成功运行(它没有引用 BaseClass::SampleController 中的 page_title)为什么?
如果不是存根,我如何访问规范中的 page_title 进行检查?
如果你只是想看看标题,你真的不需要存根。试试这个:
it "page title should be Sample title " do
get :choose
expect(assigns(:page_title)).to eq "Sample title"
end
您可以阅读有关此方法的更多信息here
我是 rails 和 rspec 的新手。 我正在使用
rspec-rails 3.0.0
rspec 3.0.0
ruby2.3.5
我写了一个示例控制器
class BaseClass::SampleController < ApplicationController
skip_before_filter :check_privilege
def choose
@page_title = I18n.t('BaseClass.box.chooser_title')
render :layout => false
end
end
其中
BaseClass.box.chooser_title
在config/locale/en.yml中,它的值为"sample title"
我在 app/view 中也有 choose.html.erb 并且它有标题样本标题
我为上面的控制器写了一些Rspec
context "choose" do
it "renders the choose template" do
get :choose
expect(response).to render_template('choose')
end
it "page title should be Sample title " do
get :choose
BaseClass::SampleController.any_instance.stubs(:page_title).returns("Sample title")
obj = BaseClass::SampleController.new
expect(obj.page_title).to eql "Sample title"
end
我想检查 choose.html.erb 的标题是否为 "sample text"。 我有两个问题
我尝试在第二个测试用例中为控制器编写一个存根, 即使我将 :page_title 更改为其他名称,测试用例也成功运行(它没有引用 BaseClass::SampleController 中的 page_title)为什么?
如果不是存根,我如何访问规范中的 page_title 进行检查?
如果你只是想看看标题,你真的不需要存根。试试这个:
it "page title should be Sample title " do
get :choose
expect(assigns(:page_title)).to eq "Sample title"
end
您可以阅读有关此方法的更多信息here