ruby-on-rails - Rails 3 - 测试 View 是否调用方法

标签 ruby-on-rails ruby testing

我开始学习Rails。我正在使用 Rails 3。

在我的简单应用程序中,我有以下代码:

<% @tasks.each do |task| %>
  ...
    <td><%= friendly_estimate task.estimate, { :compact => true } %></td>
  ...
<% end %>

我的任务是测试 View 是否真的将 :compact 选项发送到我的方法,以确保当前显示估计值。

所以规范是:

Estimates must be shown in compact view, on lists pages

我是 Ruby 测试的新手,也是 View 测试的新手,所以我希望有人可以提供帮助,或者为我指出正确的方向。

谢谢:)

最佳答案

尽管您可以测试发送到 friendly_estimate 的紧凑选项的使用情况helper方法使用了多种技术,功能测试的主要目的不是验证实现,而是验证输出。

如果您检查输出,您应该能够确定是否使用了正确的格式。最简单的方法是插入某种可以在功能测试中识别的 CSS 类。例如,将紧凑格式包装在 <span class="compact"> 中然后使用 CSS 选择器使用 assert_select 进行测试:

assert_select 'td span.compact'

功能测试应该忽略实现细节,以避免将它们绑定(bind)得太强。这样您就可以随意重构您的模型和助手,但仍然验证它们是否产生正确的输出。

关于ruby-on-rails - Rails 3 - 测试 View 是否调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637931/

相关文章:

ruby-on-rails - rails 复位单柱

ruby-on-rails - Rails - acts_as_taggable_on 在编辑时删除逗号

android - 创建 Android APK 测试应用程序

ruby-on-rails - Rails Ready 脚本不起作用

ruby - Ruby 函数调用的括号化的主要风格是什么?

ruby-on-rails - 更新 Rails 中已删除的对象时没有错误

ruby - 类与 Class.new,模块与 Module.new

go - TestMain - 没有要运行的测试

在 Golang 中测试/模拟 3rd 方包

ruby-on-rails - `only:` 处的 `before_action` 在 Rails 中如何工作?