Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为控制器规格创建自定义rspec变量,如响应_Ruby On Rails_Ruby_Testing_Rspec_Specs - Fatal编程技术网

Ruby on rails 为控制器规格创建自定义rspec变量,如响应

Ruby on rails 为控制器规格创建自定义rspec变量,如响应,ruby-on-rails,ruby,testing,rspec,specs,Ruby On Rails,Ruby,Testing,Rspec,Specs,我想创建一个类似于response对象的自定义变量,该变量应仅在控制器规格中可用。我注意到rspec支持前/后钩子,这意味着我可以用它们创建实例变量,以便以后使用。但是response对象感觉和工作起来更像是一个延迟计算的let变量。此外,控制器规范支持可以接受参数的assign方法。 rspec是否支持创建用于特定类型规范的类似方法 注意:我不需要支持rspec 3.0以下的任何内容。您只需使用您的函数创建一个模块,然后将其包含在rspec配置块中即可。您可以控制规格的类型,当您包括模块时,该

我想创建一个类似于
response
对象的自定义变量,该变量应仅在
控制器规格中可用。我注意到rspec支持前/后钩子,这意味着我可以用它们创建实例变量,以便以后使用。但是
response
对象感觉和工作起来更像是一个延迟计算的
let
变量。此外,控制器规范支持可以接受参数的
assign
方法。 rspec是否支持创建用于特定类型规范的类似方法


注意:我不需要支持rspec 3.0以下的任何内容。

您只需使用您的函数创建一个模块,然后将其包含在rspec配置块中即可。您可以控制规格的类型,当您包括模块时,该参数应作为第二个参数提供:

module ControllerSpecHelpers
  def something
    'fubar2000'
  end
end

RSpec.configure do |config|
  config.include ControllerSpecHelpers, type: :controller
end

RSpec.describe BlahController, type: :controller do
  it 'should be possible to use the `something` helper in a controller spec' do
    expect(something).to eq('fubar2000')
  end
end

也许发布你想要测试的东西,我们可以从那里得到更多的帮助。