Rails 测试单元 - 带有 content_for 的助手

发布于 2024-09-30 23:55:05 字数 220 浏览 4 评论 0原文

module ApplicationHelper

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

end

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

module ApplicationHelper

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

end

Anyone knows how can I test this helper using test unit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挖鼻大婶 2024-10-07 23:55:05

对于 Rails 中的任何帮助程序测试,您始终从测试/单元/帮助程序开始。

由于这是一个 ApplicationHelper,请使用名为 application_helper_test.rb 的文件

在该文件中,您可以拥有类似的内容

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

您可以通过照常调用方法来测试助手中返回的任何内容,并断言已发送某些内容后退。

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

我会把这两个分开,这样你的助手只返回一个 page_title,另一个则返回一个“show_title”,无论是什么。或者就像你切换说“我应该在页面上显示这个标题”?

For any helper testing in rails, you always start in tests/unit/helpers.

Since this is a ApplicationHelper, use the file called application_helper_test.rb

In that file you can have something like

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

You can test whatever is returned in a helper by just calling the method as usual, and asserting something is sent back.

Not knowing what you are doing, personally, there is too much going on in this method, but that could just be me.

I'd break these two out, so that your helper is just returning a page_title and another one is returning a "show_title" whatever that is. or is that like your switch to say " I should show this title on a page"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文