Ruby on Rails:测试值是否确实存在?

时间:2013-04-14 23:10:53

标签: ruby-on-rails ruby ruby-on-rails-3 testing

我正在尝试测试我的值是否存在...不确定如何做到这一点,我刚开始学习Ruby on Rails。希望有人能指出我正确的方向吗?

假设我有这段代码:

@lv = {'apple' => ['red', 'round'], 'iPhone' => ['device', 'phone']}

if params[:var]
    @lv.each do |key, tags|
        if params[:var] == key
            lvtags = @lv[params[key]]
            lvtags.each do |tag|
                @tags = client.tag_recent_media(tag)
            end
        end
    end
end

我正在尝试查看if params[:var] == key的循环是否有效。我想以某种方式输出alert()类型的东西来测试key是否有值?有alert(key)之类的东西吗?它会显示key是否有某些东西?或者,如果我可以测试lvtags是否有一个应该弹出的值?

例如,如果?var=0

然后我想测试alert(lvtags),因此这应该会弹出apple或某些与lvtags = @lv[params[key]]相关联的值。我们通常如何在rails中测试这样的东西?

由于

2 个答案:

答案 0 :(得分:1)

你可以puts keyPuts将其第一个参数转换为字符串并将其输出到stdout(您的控制台)。

但是,您可能更容易使用调试器。您可以使用

打开控制台调试器(想想gdb)
require 'debugger'; debugger

请务必先安装the debugger gem。将以下内容放在您的Gemfile

gem 'debugger', group: [:development, :test]

编辑:添加了一个指向调试器gem的github页面的链接。

答案 1 :(得分:0)

您只需将其记录在控制台中即可。

Rails.logger.info key.inspect # or whichever's value you want to check

检查对象时也很有用