From e8e1c0cbda117f1deb10d34a9c0b59841992b984 Mon Sep 17 00:00:00 2001 From: Vaia Patta Date: Tue, 27 Jan 2026 21:03:18 +0200 Subject: [PATCH] Moviegoer and SimpleCalculator accept exceptions from both scopes The tests for these two learning exercises now check whether the expected exception has been defined inside or outside the main class. Solves issue #6772 --- exercises/concept/moviegoer/moviegoer_test.rb | 3 ++- .../concept/simple-calculator/simple_calculator_test.rb | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/exercises/concept/moviegoer/moviegoer_test.rb b/exercises/concept/moviegoer/moviegoer_test.rb index c31a3e4641..7925422b84 100644 --- a/exercises/concept/moviegoer/moviegoer_test.rb +++ b/exercises/concept/moviegoer/moviegoer_test.rb @@ -23,7 +23,8 @@ def test_members_get_free_popcorn end def test_regular_moviegoers_dont_get_free_popcorn - assert_raises NotMovieClubMemberError do + expected_exception=Moviegoer.include?(NotMovieClubMemberError)?(Moviegoer::NotMovieClubMemberError):NotMovieClubMemberError + assert_raises expected_exception do Moviegoer.new(25, member: false).claim_free_popcorn! end end diff --git a/exercises/concept/simple-calculator/simple_calculator_test.rb b/exercises/concept/simple-calculator/simple_calculator_test.rb index 1b26e42796..c8d426ecfa 100644 --- a/exercises/concept/simple-calculator/simple_calculator_test.rb +++ b/exercises/concept/simple-calculator/simple_calculator_test.rb @@ -27,14 +27,17 @@ def test_no_number_second_operand_raises_exception end def test_raises_exception_for_non_valid_operations - assert_raises(SimpleCalculator::UnsupportedOperation) { SimpleCalculator.calculate(1, 2, '**') } + expected_exception=SimpleCalculator.include?(UnsupportedOperation)?(SimpleCalculator::UnsupportedOperation):UnsupportedOperation + assert_raises(expected_exception) { SimpleCalculator.calculate(1, 2, '**') } end def test_raises_exception_when_operation_is_nil - assert_raises(SimpleCalculator::UnsupportedOperation) { SimpleCalculator.calculate(1, 2, nil) } + expected_exception=SimpleCalculator.include?(UnsupportedOperation)?(SimpleCalculator::UnsupportedOperation):UnsupportedOperation + assert_raises(expected_exception) { SimpleCalculator.calculate(1, 2, nil) } end def test_raises_exception_when_operation_is_an_empty_string - assert_raises(SimpleCalculator::UnsupportedOperation) { SimpleCalculator.calculate(1, 2, '') } + expected_exception=SimpleCalculator.include?(UnsupportedOperation)?(SimpleCalculator::UnsupportedOperation):UnsupportedOperation + assert_raises(expected_exception) { SimpleCalculator.calculate(1, 2, '') } end end