【问题标题】:Rails/Rspec Views: The right way to test partialsRails/Rspec 视图:测试部分的正确方法
【发布时间】:2011-07-01 03:54:28
【问题描述】:

我有一个 Rails 3 部分,它列出了所有类别作为导航菜单 - 它在大多数模板页面上,但不是所有模板页面......让我们说大约 75%。我现在正在尝试测试部分(在 RSpec 中),我刚刚意识到一些事情:

目前,我在实际视图中调用 Categories.all。困难在于,因为它涉及数据库,我在视图规范中的模拟/存根被忽略,因此测试失败。

我猜另一种方法是在应用程序控制器中分配变量,然后将其作为局部变量传递给局部变量。尽管如此,我仍有大约 25% 的页面不会使用该变量,我想知道是否有更优雅的处理方式。

简而言之,我希望在不接触测试数据库的情况下通过查看规范,但我不确定传递给我的部分的全局变量是最好的方法......而且我没有在每个(&仅)需要它的控制器。

任何建议表示赞赏...

【问题讨论】:

  • 我也有这个问题。查看规范文件的代码 sn-p 以及视图可能会有所帮助。

标签: ruby-on-rails-3 rspec rspec2


【解决方案1】:

为什么不为所有类别创建一个辅助方法?

# 在类别助手中 def all_categories @all_categories ||= Category.all 结尾

或者……

# 应用控制器 helper_method :all_categories def all_categories ...

然后你可以在你的规范中删除这个方法并且你不会接触数据库

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2018-01-02
    • 2013-05-04
    相关资源
    最近更新 更多