RSPEC可以处理90%通过的阈值测试吗?

时间:2011-10-27 03:15:03

标签: ruby-on-rails testing rspec rspec2

我有一个分类函数,它确定一段文本是否属于某个类别(即它返回true / false)。我有一系列真实世界的例子,我不希望它在100%的时间内正确分类。

def meal?(text)
  !text.match(/restaurant|meal|wine|.../i).nil?
end

RSPEC是否可以指定一项测试,当我将这些数百个示例提供给该函数时,只要正确识别了90%,那么它会被视为通过?更好的方法是让RSPEC输出示例在报告中失败。如果可能的话怎么写这样的测试呢?

1 个答案:

答案 0 :(得分:2)

不确定

total_correct = 0;
@examples.each do |e|
  match = text.match(/restaurant|meal|wine|.../i)
  match.nil? ? puts e : total_correct += 1
end
(total_correct.to_f / @examples.size).should >= 0.9

任何你可以比较或减少到布尔表达式的东西,RSpec都可以处理......这几乎是软件中的一切。这只是一个弄清楚如何表达它的问题。