def symbol_thrown? expected_symbol, expected_value, context, &block
      thrown_symbol, thrown_value = catch_symbol(expected_symbol, &block)

      if context[:right_proc]
        expected_symbol && raise(ArgumentError, 'Both arguments and block given. Please use either one.')
        return MiniSpec::ThrowInspector.thrown_as_expected_by_proc?(thrown_symbol, context)
      end

      MiniSpec::ThrowInspector.thrown_as_expected?(expected_symbol, expected_value, thrown_symbol, thrown_value, context)
    end
def symbol_thrown? expected_symbol, expected_value, context, &block
      thrown_symbol, thrown_value = catch_symbol(expected_symbol, &block)

      if context[:right_proc]
        expected_symbol && raise(ArgumentError, 'Both arguments and block given. Please use either one.')
        return MiniSpec::ThrowInspector.thrown_as_expected_by_proc?(thrown_symbol, context)
      end

      MiniSpec::ThrowInspector.thrown_as_expected?(expected_symbol, expected_value, thrown_symbol, thrown_value, context)
    end
checks whether given block throws a symbol
 and if yes compare it with expected one.
 if a optional value given it will be compared to thrown one.

 @param expected_symbol
 @param expected_value
 @param [Proc] &proc
 @return a failure [ThrowError] if expectation not met.
         true if expectations met.