【问题标题】:In rails, how do you stub the render method in functional tests?在 Rails 中,如何在功能测试中存根 render 方法?
【发布时间】:2008-12-29 03:01:18
【问题描述】:

我正在为 rails 中的控制器编写一些功能测试,使用 mocha 进行模拟/存根。

有没有办法防止模板在测试过程中被渲染,这样我就只能测试控制器中的代码了?

看起来 rspec 提供了类似的东西,但我没有使用 rspec。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    最明显的解决方案似乎有效:

    @controller.expects(:render)
    

    我可以发誓我昨晚试过了,但没有运气。但今天早上它就像一个魅力。我一定忽略了一个错字。

    【讨论】:

      【解决方案2】:

      这里似乎不需要使用存根。如果要确保呈现给定的模板,请使用assert_template 和/或assert_response。您还可以手动或使用诸如assert_select 之类的帮助器来断言响应对象的状态。

      【讨论】:

      • 我理解你的意思,但我试图做的有点不同。基本上,我只是想在我的模型中存根一些方法,并测试以确保控制器正确调用它们。通过避免渲染,我真的试图避免必须对我的视图/助手使用的每个方法进行存根
      • 我明白了,在这种情况下,模拟可能是必要的,但看起来你已经回答了你自己的问题 :)
      【解决方案3】:

      render_to_string 会做你需要的吗?

      【讨论】:

      • 我不确定。这听起来需要我修改控制器中的代码。我只想在这个测试运行时用模拟替换渲染方法。
      猜你喜欢
      • 1970-01-01
      • 2019-12-20
      • 1970-01-01
      • 2011-06-29
      • 2011-04-04
      • 2013-04-15
      • 1970-01-01
      • 2014-10-18
      • 2011-02-15
      相关资源
      最近更新 更多