代码之家  ›  专栏  ›  技术社区  ›  JoshReedSchramm

在rails控制器中测试GET

  •  0
  • JoshReedSchramm  · 技术社区  · 17 年前

    我正试图通过RSpec测试来测试Rails控制器。我遵循我在这里找到的一个例子- http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/ 但我被困在我正在测试的方法的实际执行上。

    理想情况下,我的URL看起来像 http://mysite.com/Products/index/Manufacturer/ModelName

    get :index, :manufacturer=>@manufacturer, :modelName=>@modelName
    

    “ProductController查找有效产品时应检索产品”中的ArgumentError 参数数目错误(0表示2)

    有什么想法吗?

    编辑:应注意,@manufacturer和@modelName是在之前定义的(:每个)

    1 回复  |  直到 17 年前
        1
  •  1
  •   JoshReedSchramm    17 年前

    因为我怀疑这是我对rails编程的无知。

    我将控制器方法定义为

    def index(manufacturer, modelName) 
    

    当我真的需要使用params散列来访问属性时。然后,我必须定义一个自定义路由,因为id是默认情况下预期传递到控制器方法中的唯一参数。

    一旦我这么做了,我就把规格改为

    get :index, {:manufacturer=>@manufacturer, :modelName=>@modelName}
    

    它成功了。

    谢谢大家的评论。

    推荐文章