summaryrefslogtreecommitdiff
path: root/test/json
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2025-01-15 20:30:41 +0100
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2025-01-16 09:01:11 +0900
commit91918bb01f15fc059d47b76d9753123cb9442ecb (patch)
tree99486031eb15e917c27117d7c65826a3148b1341 /test/json
parenta50d612a0cc50bfaa11913fdb1d5d48311ceb692 (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.rb36
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