ruby-on-rails - Rails 测试单元 - content_for 的助手

标签 ruby-on-rails ruby unit-testing testing helpers

module ApplicationHelper

  def title(page_title, show_title = true)
    content_for(:title) do 
      page_title.to_s
    end
    @show_title = show_title
  end

end

有人知道如何使用测试单元测试这个助手吗?

最佳答案

对于 Rails 中的任何辅助测试,您总是从 tests/unit/helpers 开始。

因为这是一个 ApplicationHelper,所以使用名为 application_helper_test.rb 的文件

在那个文件中你可以有类似的东西

 
 test "displays page title" do
    assert_equal "April 2010", title("April 2010", false)
  end

您可以通过像往常一样调用方法并断言返回的内容来测试帮助程序中返回的任何内容。

不知道你在做什么,就个人而言,这个方法中发生了太多事情,但这可能只是我。

我会把这两个分开,这样您的助手就只返回一个 page_title,而另一个助手返回一个“show_title”,不管它是什么。或者这就像你的开关说“我应该在页面上显示这个标题”?

关于ruby-on-rails - Rails 测试单元 - content_for 的助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096960/

相关文章:

javascript - 无法从 Jquery 访问关联模型

ruby-on-rails - 如何从 liquid 标签访问 Rails Controller ?

ruby-on-rails - 开发环境中的 Sidekiq

ruby-on-rails - 我的第一个 Ruby On Rails 应用程序出了什么问题?

c# - 在 C# 中使用 Moq 模拟服务

typescript - 如何在nestjs单元测试中模拟nest-winston记录器依赖项

javascript - 即使我设置了 uglifier,Rails 也没有缩小 JS

Ruby 1.9 线程池

ruby - 在瓦提尔打开新的一页

unit-testing - 如何从命令行运行单元测试?