在Rspec中测试Controller方法变量的返回值

时间:2019-02-19 11:45:05

标签: ruby-on-rails unit-testing rspec controller rspec-rails

在Rails应用中,我正在编写Rspec测试用例。

我有一个控制器文件,该文件具有一个称为“索引”的方法,该方法将一些值返回到视图文件,用作该特定视图文件中某些表的头值。代码示例如下。

def index @some_variable = [I18n.t('controllerFileName.index.someTitle1'), I18n.t('controllerFileName.index.someTitle2')] end

sometitle1和sometitle2作为视图文件的标题。

我想在控制器中编写一个测试用例,以测试控制器是否使用Rspec将正确的期望值返回到视图文件(即Sometitle1和sometitle2)。

我知道我们可以使用Rspec Test用例检查视图文件中标头的存在。只是好奇地知道我们是否可以使用Rspec检查控制器文件中的返回值。

我是Rspec的新手。如果不可能或有办法做到这一点,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以使用assigns对其进行测试:

get :index
expect(assigns(:some_variable)).to eq(['Title 1', 'Title 2'])

ref:https://relishapp.com/rspec/rspec-rails/docs/controller-specs