кинь тег в макет + минитест - PullRequest
0 голосов
/ 14 февраля 2019

Есть ли способ попросить насмешку Minitest бросить тег при возврате

У меня есть метод, который вызывается..

before_save :notify_server

def notify_provision_server()
  make_api_call(:delete)
  ## if the abort is returned the rails does not save the record
  make_api_call(:post)
end

private
def make_api_call(http_method)
  ... 

  ...
rescue StandardError
  Airbrake.notify
  throw :abort # Rails new syntax to avoid before_* callback to get saved 
end

Я ищу смоделировать ту часть, в которой make_api_call возвращает throw :abort

test 'Test should not save the record when delete api fail' do 
  api_call_mock = MiniTest::Mock.new
  api_call_mock.expect :call, -> { throw :abort } , [:delete]
  device = Device.new
  assert_difference ->{ Device.count }, 0 do
    device.save
    assert device.new_record?, "Device must be a new record"
    assert_mock mock
  end
end

Но, к сожалению, это не работает.Так как мне скинуть тэг в Minitest Mock

...