Rspe c - макет метода модели - PullRequest
0 голосов
/ 23 марта 2020

У меня есть следующие методы,

Model / Summary.rb

def show_summary
    device_lastest_reading = lastest_reading
  end

Model / Reading.rb

def lastest_reading
    select_readings(start_date, last_date)
  end

Метод lastest_reading получает значения от оборудования. Я создал DummyReading.rb для RSPE C и поместил метод lastest_reading, как показано ниже,

DummyReading.rb

def lastest_reading
    {
      :a=>13,
      :b=>"7666",
      :c=>6729690,
    }
  end

вот что я попробовал,

it "should return summary data" do
        allow(DummyReading.lastest_reading).to receive(Model.show_summary).and_return({})
      end

Я получил ошибку "undefined method to_sym 'для {}: Hash`"

В rspe c как смоделировать / заглушить эту переменную device_lastest_reading.

Спасибо вы.

1 Ответ

0 голосов
/ 24 марта 2020

Как уже упоминалось @max, перед тем, как спросить, вы должны сделать домашнюю работу. Сначала поймите разницу между издевательством и окурком и тем, как он работает с rspe c.

Для быстрой помощи должно работать следующее.

it "should return summary data" do
  allow_any_instance_of(Reading).to receive(:latest_reading).and_return(DummyReading.new.latest_reading)
end

Хотя, allow_any_instance_of не рекомендуется. Оформить заказ Руководство по стилю .

...