diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2025-01-15 20:30:41 +0100 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2025-01-16 09:01:11 +0900 |
| commit | 91918bb01f15fc059d47b76d9753123cb9442ecb (patch) | |
| tree | 99486031eb15e917c27117d7c65826a3148b1341 /test/json | |
| parent | a50d612a0cc50bfaa11913fdb1d5d48311ceb692 (diff) | |
[ruby/json] Refactor JSONFixturesTest
https://github.com/ruby/json/commit/c69963fbe5
Diffstat (limited to 'test/json')
| -rw-r--r-- | test/json/json_fixtures_test.rb | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/test/json/json_fixtures_test.rb b/test/json/json_fixtures_test.rb index adcdffbb5e..c153ebef7c 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 |
