какой подход RSpec я мог бы использовать для этого требования - PullRequest
0 голосов
/ 04 марта 2012

Справочная информация: у меня примерно (приложение Ruby on Rails)

class A
   def calculate_input_datetimes
      # do stuff to calculate datetimes - then for each one identified
      process_datetimes(my_datetime_start, my_datetime_end)
   end

   def process_datetimes(input_datetime_start, input_datetime_end)
      # do stuff
   end
end

Итак:

  • Я хочу проверить, работают ли алгоритмы Calculate_input_datetimes. и вычисление правильных datetime для передачи в process_datetimes
  • Я знаю, что могу ЗАКЛЮЧИТЬ process_datetimes, чтобы его код не был участвует в тесте

ВОПРОС : Как я могу настроить тест rspec, чтобы я мог специально проверить, что правильные даты пытались передать process_datetimes, поэтому для данного теста спецификации, что process_datetimes был вызываемый три (3) раза говорит с переданными параметрами:

  • 2012-03-03T00: 00: 00 + 00: 00, 2012-03-09T23: 59: 59 + 00: 00
  • 2012-03-10T00: 00: 00 + 00: 00, 2012-03-16T23: 59: 59 + 00: 00
  • 2012-03-17T00: 00: 00 + 00: 00, 2012-03-23T23: 59: 59 + 00: 00

спасибо

1 Ответ

1 голос
/ 04 марта 2012

Звучит так, как вы хотите should_receive и указываете, какие аргументы ожидаются, используя with, например

a.should_receive(:process_datetimes).with(date1,date2)
a.should_receive(:process_datetimes).with(date3,date4)
a.calculate_input_datetimes

В docs есть и другие примеры, напримериспользуйте .ordered, если важен порядок этих вызовов

...