diff --git a/test/ruby/test_complex.rb b/test/ruby/test_complex.rb index f2a0f5b5ee2de2..3a9bad1416fcc1 100644 --- a/test/ruby/test_complex.rb +++ b/test/ruby/test_complex.rb @@ -980,17 +980,27 @@ def test_Complex_with_invalid_exception } end - def test_Complex_without_exception - assert_complex_without_exception('5x') - assert_complex_without_exception(nil) - assert_complex_without_exception(Object.new) - assert_complex_without_exception(1, nil) - assert_complex_without_exception(1, Object.new) + def assert_complex_with_exception(error, *args, message: nil) + assert_raise(error, message) do + Complex(*args, exception: true) + end + assert_nothing_raised(error, message) do + assert_nil(Complex(*args, exception: false)) + assert_nil($!) + end + end + + def test_Complex_with_exception + assert_complex_with_exception(ArgumentError, '5x') + assert_complex_with_exception(TypeError, nil) + assert_complex_with_exception(TypeError, Object.new) + assert_complex_with_exception(TypeError, 1, nil) + assert_complex_with_exception(TypeError, 1, Object.new) o = Object.new def o.to_c; raise; end - assert_complex_without_exception(o) - assert_complex_without_exception(1, o) + assert_complex_with_exception(RuntimeError, o) + assert_complex_with_exception(TypeError, 1, o) end def test_respond @@ -1249,13 +1259,4 @@ def real? Complex.polar(1, obj) end end - - private - - def assert_complex_without_exception(*args) - assert_nothing_raised(ArgumentError) do - assert_nil(Complex(*args, exception: false)) - assert_nil($!) - end - end end