assert_raise fails on native exceptions
---------------------------------------

                 Key: JRUBY-5279
                 URL: http://jira.codehaus.org/browse/JRUBY-5279
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.5.6
            Reporter: Jeff Hodges
            Assignee: Thomas E Enebo


assert_raise in test/unit does not properly handle NativeExceptions. When given 
one to test against, the code in _check_exception_class checks if the class 
inherits from the ruby Exception class (with `assert(Exception >= klass,...`). 
This fails when a NativeException is passed into it. A similar bug was made 
earlier as JTESTR-45, but the reporter focused on rspec (which was found to be 
invalid) and did not follow through with test/unit and the bug was not elevated 
to JRUBY. Also, this seems to have been known on the web at 
[http://stackoverflow.com/questions/2187166/jruby-and-testunits-assert-raise] 
with no resolution.

This code reproduces the problem:

{code}
require 'test/unit'
require 'java'

class TestAssertRaiseWithNativeException < Test::Unit::TestCase
  java_import('java.util.NoSuchElementException') { 'FooError' }
  java_import 'java.util.MissingResourceException'
  def test_native_exception_with_renaming
    assert_raise(FooError) {
      raise FooError
    }
  end

  def test_native_exception
    assert_raise(Java::JavaUtil::MissingResourceException) {
      raise Java::JavaUtil::MissingResourceException
    }
  end
end
{code}

The above tests will fail with these results:

{code}
  1) Failure:
test_native_exception(TestAssertRaiseAliasedNativeException) 
[assert_raise_problem.rb:15]:
Should expect a class of exception, Java::JavaUtil::MissingResourceException.
<nil> is not true.

  2) Failure:
test_native_exception_with_renaming(TestAssertRaiseAliasedNativeException) 
[assert_raise_problem.rb:8]:
Should expect a class of exception, Java::JavaUtil::NoSuchElementException.
<nil> is not true.
{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to