ruby-on-rails – 使用Rspec隔离测试细胞 – 任何推荐?

ruby-on-rails – 使用Rspec隔离测试细胞 – 任何推荐?,第1张

概述我正在尝试Apotonick的Trailblazer宝石,它在Rails上带来了更多的结构,我真的很喜欢我到目前为止尝试过的东西,但还没有接受所有这些.这是Trailblazer的一个优势,你可以逐步深入研究它,将它逐步引入你的Rails项目.我买了一本开拓者书,我现在正在关注这本书,这引出了我的问题. 我正在研究示例应用程序(@see https://github.com/apotonick/g 我正在尝试Apotonick的trailblazer宝石,它在Rails上带来了更多的结构,我真的很喜欢我到目前为止尝试过的东西,但还没有接受所有这些.这是trailblazer的一个优势,你可以逐步深入研究它,将它逐步引入你的Rails项目.我买了一本开拓者书,我现在正在关注这本书,这引出了我的问题.

我正在研究示例应用程序(@see https://github.com/apotonick/gemgem-trbrb),但我正在使用rspec.

我想单独测试单元输出.在本书中,测试框架是Test :: Unit,一些辅助方法附带了Test :: Unit的单元格.

使用rspec这是另一个故事…我尝试了rspec-cells,但它似乎不适用于在trailblazer中使用的当前单元版本(4.0).
所以我尝试做一些鲑鱼编码,目标是尽可能小的设置来检索细胞的输出.这导致了一个带有简单助手的模块

这是代码(也在这里:https://github.com/demental/gemgem-trbrb/blob/3ec9df1d5f45b880f834486da3c150d4b65ec627/spec/support/cells.rb)

module Cell  module Rspec    private    def concept(name,*args)      controller_stub = double(        url_options: {          host: '',optional_port: 80,protocol: 'http',path_parameters: ''        }      )      Capybara.string(Cell::Concept.cell name,controller_stub,*args)    end  endendRSpec.configure do |config|  config.include Cell::Rspec,type: :cellend

我需要创建一个存根url_options方法的原因是pathHelpers方法在单元视图中工作,而不必设置一个完整的控制器(带有一个完整的请求对象).

我喜欢它的方式,它使一个非常简约的设置.但是我想知道它是不是因为我只是模仿一个控制器,但是我觉得我没有摆脱它的依赖.你怎么看 ?

解决方法 我知道这篇文章很旧,但我发现你的代码中仍然没有解决问题.

您需要将控制器添加到单元格方法的第三个参数,因为单元格中的第二个参数是模型,第三个参数是选项.您可以像下面这样做:

controller_stub = double(  url_options: {    host: '',path_parameters: ''  })args[1] = {} if args.length < 2args[1].merge! controller: controller_stubCapybara.string(Cell::Concept.cell(name,*args).to_s)

方法Cell :: Concept.cell只是viewmodel.cell的包装,当你看这个方法时,你可以看到它将控制器添加到options参数:

def cell(name,model=nil,options={})  viewmodel.cell(name,model,options.merge(controller: parent_controller))end

更深入的parent_controller在viewmodel类中定义并在构造函数中初始化:

def initialize(model=nil,options={})  @parent_controller = options[:controller]  setup!(model,options)endattr_reader :parent_controller

我希望这对你有所帮助.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用Rspec隔离测试细胞 – 任何推荐?全部内容,希望文章能够帮你解决ruby-on-rails – 使用Rspec隔离测试细胞 – 任何推荐?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1270519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存