Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Rspec 如何测试定制的Padrino FormBuilder?_Rspec_Padrino - Fatal编程技术网

Rspec 如何测试定制的Padrino FormBuilder?

Rspec 如何测试定制的Padrino FormBuilder?,rspec,padrino,Rspec,Padrino,假设我们在Padrino中有一个自定义FormBuilder,如下所示: class CustomFormBuilder < Padrino::Helpers::FormBuilder::AbstractFormBuilder def foo(arg1, arg2, ...) # do something with #template end end 我不清楚如何做到这一点: 通常框架会实例化FormBuilder,所以我在这里这么做感觉不对。有更好的方法吗 我不知道如

假设我们在Padrino中有一个自定义FormBuilder,如下所示:

class CustomFormBuilder < Padrino::Helpers::FormBuilder::AbstractFormBuilder
  def foo(arg1, arg2, ...)
    # do something with #template
  end
end
我不清楚如何做到这一点:

  • 通常框架会实例化FormBuilder,所以我在这里这么做感觉不对。有更好的方法吗
  • 我不知道如何传递FormBuilder将接受为模板的对象
  • 我不知道如何获得渲染模板的结果

测试这个的正确方法是什么?

经过一番努力,我发现了这个问题。其思想是创建一个表示模板的对象,将其传递给FormBuilder,为模型创建另一个对象,然后查看生成器是否生成正确的HTML

描述CustomFormBuilder所做的
让(:模板)做
新办的
包括Padrino::Helpers::OutputhHelpers
包括Padrino::Helpers::FormHelpers
包括Padrino::Helpers::TagHelpers
完.新
终止
它“让一个班级”做什么
model=Class.new{include ActiveModel::model}.new
builder=已描述\u类。新模板,模型
expect(builder.helper\u方法:foo)。包括'class=“expected class”'
#或者,如果您正在使用rspec html匹配器或类似的东西。。。
expect(builder.helper_方法:foo).to\
have_标记('div',:with=>{:class=>'bar'})
终止
终止
describe CustomFormBuilder do
  it "renders the right output"
    # ...
    result = CustomFormBuilder.new(...).template.render

    expect(result).to include 'expected-content'
  end
end