在script \ console中快速调试辅助方法

时间:2009-06-22 09:41:24

标签: ruby-on-rails ruby

如何在script \ console中快速调试帮助器方法。我正在谈论进行更改,然后一遍又一遍地调试。

使用模型方法可以轻松实现,因为我所要做的就是使用 重装! 测试更新的代码,而测试帮助方法,我必须做这样的事情

foo = ActionView :: Base.new foo.extend YourHelperModule

每次我想测试一次变化。

重装什么!做?我可以修改它以添加上面的代码行吗?

3 个答案:

答案 0 :(得分:3)

我不认为你可以在不攻击Rails的情况下做到这一点。但是,有一个解决方法 - 在rails debugger中调试helper方法:

1)gem install ruby​​-debug

2)ruby脚本/服务器--debugger

3)放置<%debugger%>进入某个视图并在浏览器中打开该页面

4)服务器窗口“变成”控制台,您可以在其中调试辅助方法

5)'return'命令结束调试

如果您修改了辅助方法并再次运行调试器,您将获得该方法的最新版本。

有关调试器的更多信息,请访问:http://railscasts.com/episodes/54-debugging-with-ruby-debug

答案 1 :(得分:2)

我建议不要在Test :: Unit或rspec中使用脚本控制台和编写测试。谷歌应该让你指向正确的方向,那里有大量的信息。

答案 2 :(得分:0)

如果你一次又一次地做某事,那么你应该自动化它。假设你知道你的帮助函数应该做什么,那么就像其他地方提到的那样,你应该能够为它编写一个测试(或测试)。

这是测试application_helper的示例。它位于我的test/unit目录中:

require 'test_helper'

class ApplicationHelperTest < ActiveSupport::TestCase

  include ApplicationHelper

  test "number_as_pct shows 2dp as default" do
    assert_equal "1.10%", number_as_pct(0.011)
  end
  test "number_as_pct shows more dp when required" do
    assert_equal "1.1000%", number_as_pct(0.011, :precision => 4)
  end
end