如何显示那些错误的预期输入?

时间:2011-11-08 02:04:17

标签: ruby testing rspec

我正在测试一个静态类方法,将许多不同的输入传递给它。由于每个输入都很大,我将列表保存在某个地方,然后将它们传递给循环中的方法。

但是我意识到错误不会显示这些方法的输入,因此很难调试。有没有办法显示这个呢?

1 个答案:

答案 0 :(得分:2)

也许您可以标记输入(例如在哈希中)并使用标签创建示例标题,以便您知道哪个输入产生了意外结果?

E.g。

INPUTS = {
  "returns an error when input is too big" => { :input => ..., :output => ... },
  "returns an error when input too small" => { :input => ..., :output => ... },
  "returns a pony when input is just right" => { :input => ..., :output => ... },
}

INPUTS.each do |title, bundle|
  it title do
    StaticClass.method(bundle[:input]).should == bundle[:output]
  end
end

这个例子很傻;显然,你想要从yaml文件或其他任何东西加载你的数据,但我太懒了,不能弹出演示代码。 Dir.glob.somethingorother。 : - )

另外,请注意,您尝试解决的问题是夹具驱动测试中的固有问题;你必须在示例代码之外的某个地方查看示例代码正在做什么。如果你可以避免夹具驱动的测试,我建议你这样做。