Я сейчас создаю приложение с Dashing / Smashing и использую rspec для проверки своего кода.Однако я не могу понять, как проверить, что send_event
вызывается.Я пробовал
expect(Sinatra::Application).to receive(:send_event).twice
и
expect(Dashing).to receive(:send_event).twice
,
, но ни один не помог.Я не уверен, какой объект должен получить вызов send_event
, поскольку он находится внутри Dashing в app.rb
.Существует также эта проблема , в которой говорится об одном и том же, без ответа на Dashing GitHub.
Любой совет о том, как это сделать, будет высоко оценен.Спасибо!
Обновление:
Я до сих пор не понял, как это сделать, но обнаружил, что это работает:
let(:dummy_class) { Class.new { include Dashing } }
context 'something' do
it 'does something' do
expect(dummy_class).to receive(:send_event).once
dummy_class.send('send_event', 'test', current: 'test')
end
end
Однако если я использую метод, который хочу вызвать, который содержит send_event
, а не dummy_class.send(...)
, то он не распознает, что метод был вызван.Это должно быть связано с тем, что мой тест не использует фиктивный класс.Я не знаю, есть ли способ обойти это и заставить его использовать фиктивный класс.