我开始学习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/