独立测试rails部分视图

Posted

技术标签:

【中文标题】独立测试rails部分视图【英文标题】:Testing rails partial views standalone 【发布时间】:2008-10-08 13:52:30 【问题描述】:

我在标准 rails 2.1 项目中使用测试/单元。我希望能够独立于任何特定的控制器/动作来测试部分视图。

似乎ZenTest's Test::Rails::ViewTestCase 会有所帮助,但我无法让它工作,与 view_test http://www.continuousthinking.com/tags/view_test 类似

Google 提供的大多数东西似乎都已经过时了,所以我猜它并不真正适用于 Rails 2.1

非常感谢任何帮助。

谢谢, 罗兰

【问题讨论】:

但是,如何将对象传递给部分? 【参考方案1】:

我们在 Rails 2.1 项目中使用RSpec,我们可以做这样的事情:

describe "/posts/_form" do
  before do
    render :partial => "posts/form"
  end
  it "says hello" do
    response.should match(/hello/i)
  end
  it "renders a form" do
    response.should have_tag("form")
  end
end

但是我不知道你可以用 vanilla Rails 测试设备做多少。

【讨论】:

是的 - 不幸的是,我有太多的测试/单元测试无法为这个项目切换到 rspec - 尽管我已经在当前应用程序中迁移到 rspec,部分原因是它似乎支持这种细粒度的测试 你在哪个目录做这个?【参考方案2】:

发现这可能是相关的:

http://broadcast.oreilly.com/2008/10/testing-rails-partials.html

【讨论】:

O'Reilly 的链接已损坏【参考方案3】:

在没有控制器代码的情况下测试视图是一件危险的事情。您的测试可能会通过,但您的应用程序可能会抛出错误。始终针对现实生活中的情况进行测试,而不是人为的情况。

【讨论】:

> 您的测试可能会通过,但您的应用程序可能会抛出错误。这总是正确的。我想你可能错过了我在这里想要实现的目标。查看测试只是整体测试策略的一小部分 您可以将独立视图测试视为单元测试。您仍然需要功能和/或集成测试,但您可以使用单元测试快速测试一堆边缘案例。

以上是关于独立测试rails部分视图的主要内容,如果未能解决你的问题,请参考以下文章

在rails 2.3+中测试(rspec)嵌套模型部分

Rails -> 部分视图的操作方法

在 Ruby on Rails 3.2+ 中流式传输部分视图

Ruby on Rails(三)隐藏部分视图

Rails 视图规范:无法在命名空间视图中找到局部视图

Rails 找不到我的部分。缺少部分错误