堆栈跟踪的其余部分在哪里?

时间:2011-10-07 16:05:12

标签: ruby-on-rails ruby backtrace

我有一个引发错误的测试。为了追踪问题,我最终将此方法添加到名为NodeAffiliation的模型中:

def initialize a1, a2
  raise "kaboom"
end

然后我收到此错误:

RuntimeError: kaboom
app/models/node_affiliation.rb:13:in `initialize'
    test/unit/audit_test.rb:10:in `__bind_1318003437_24401'

但audit_test.rb正在执行此操作:

Factory.create :form

不知何故,创建一个Form也会创建一个NodeAffiliation,但这些步骤似乎在回溯中缺失。任何想法为什么和/或如何获得它们?

1 个答案:

答案 0 :(得分:2)

测试日志可能已经有堆栈跟踪,但如果没有,则可以调用

logger.debug $!.backtrace.join("\n")

其中$!是引发的异常的默认名称。这需要在救援区。我会检查你的工厂实现,它可能将node_affiliation与表单对象相关联,或者可能存在一系列关系。在创建对象时,将创建工厂中声明的所有关联。