我正在测试一个静态类方法,将许多不同的输入传递给它。由于每个输入都很大,我将列表保存在某个地方,然后将它们传递给循环中的方法。
但是我意识到错误不会显示这些方法的输入,因此很难调试。有没有办法显示这个呢?
答案 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。 : - )
另外,请注意,您尝试解决的问题是夹具驱动测试中的固有问题;你必须在示例代码之外的某个地方查看示例代码正在做什么。如果你可以避免夹具驱动的测试,我建议你这样做。