Я отлично работал в Rails5, используя mocha и minitest, включая пользовательские классы и Net / *.Однако сейчас я пытаюсь вызвать JSON :: ParserError и получаю NoMethodError: undefined method 'any_instance' for JSON:Module
.
require 'json'
require 'mocha/mini_test'
JSON.any_instance.stubs(:parse).raises(JSON::ParserError)
Я пытался https://github.com/freerange/mocha/issues/218,, но не работал.Не уверен, что может так сильно отличаться от JSON, который вызывает эти проблемы.Также попытался использовать просто заглушку и блок do.
ОБНОВЛЕНИЕ:
Вот код:
begin
parsed_json = JSON.parse(raw_json)
rescue JSON::ParserError
puts 'Exception Caught in Code' # <-- This line prints in the test console.
end
Вот тестовый код:
test 'should fail because json error' do
JSON.stubs(:parse).raises(JSON::ParserError)
end
В результате выдается исключение в тесте should fail because json error
, в котором не упоминается исходный код.Если я добавлю спасение в тест, оно также будет поймано:
test 'should fail because json error' do
JSON.stubs(:parse).raises(JSON::ParserError)
rescue JSON::ParserError
puts 'Exception Caught in Test' # <-- This line prints in the test console too.
end