Minitest возвращает NoMethodError any_instance для JSON: Модуль - PullRequest
0 голосов
/ 16 апреля 2019

Я отлично работал в 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
...