Может ли RSPEC выдержать испытание на прочность, что 90% -ое прохождение достаточно хорошо? - PullRequest
0 голосов
/ 27 октября 2011

У меня есть функция классификации, которая определяет, принадлежит ли абзац текста к категории (то есть возвращает true / false). У меня есть множество примеров из реальной жизни, и я не ожидаю, что он будет классифицироваться правильно в 100% случаев.

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

Может ли RSPEC определить тест, который, когда я передаю эти сотни примеров этой функции, если 90% идентифицированы правильно, тогда считается за проход? Еще лучше было бы иметь примеры выходных данных RSPEC, которые терпят неудачу в отчете. Если это возможно, как можно написать такой тест?

1 Ответ

2 голосов
/ 27 октября 2011

Конечно.

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 может обработать ... что в значительной степени все в программном обеспечении.Это просто вопрос выяснения, как это выразить.

...