From c69963fbe5a65601967d71455277835579cbc677 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Wed, 15 Jan 2025 20:30:41 +0100 Subject: [PATCH] Refactor JSONFixturesTest --- test/json/json_fixtures_test.rb | 36 ++++++++++----------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/test/json/json_fixtures_test.rb b/test/json/json_fixtures_test.rb index adcdffbb5..c153ebef7 100644 --- a/test/json/json_fixtures_test.rb +++ b/test/json/json_fixtures_test.rb @@ -2,39 +2,25 @@ require_relative 'test_helper' class JSONFixturesTest < Test::Unit::TestCase - def setup - fixtures = File.join(File.dirname(__FILE__), 'fixtures/{fail,pass}*.json') - passed, failed = Dir[fixtures].partition { |f| f['pass'] } - @passed = passed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort - @failed = failed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort - end + fixtures = File.join(File.dirname(__FILE__), 'fixtures/{fail,pass}*.json') + passed, failed = Dir[fixtures].partition { |f| f['pass'] } - def test_passing - verbose_bak, $VERBOSE = $VERBOSE, nil - for name, source in @passed - begin - assert JSON.parse(source), - "Did not pass for fixture '#{name}': #{source.inspect}" - rescue => e - warn "\nCaught #{e.class}(#{e}) for fixture '#{name}': #{source.inspect}\n#{e.backtrace * "\n"}" - raise e - end + passed.each do |f| + name = File.basename(f).gsub(".", "_") + source = File.read(f) + define_method("test_#{name}") do + assert JSON.parse(source), "Did not pass for fixture '#{File.basename(f)}': #{source.inspect}" end - ensure - $VERBOSE = verbose_bak end - def test_failing - for name, source in @failed + failed.each do |f| + name = File.basename(f).gsub(".", "_") + source = File.read(f) + define_method("test_#{name}") do assert_raise(JSON::ParserError, JSON::NestingError, "Did not fail for fixture '#{name}': #{source.inspect}") do JSON.parse(source) end end end - - def test_sanity - assert(@passed.size > 5) - assert(@failed.size > 20) - end end