我一直在使用Mocha和minitest在Rails5中完成一些工作,包括自定义类和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