Skip to content

Instantly share code, notes, and snippets.

@sumeet
Created October 11, 2020 00:46
Show Gist options
  • Save sumeet/afc369cc467757ea64a38078f59fb678 to your computer and use it in GitHub Desktop.
Save sumeet/afc369cc467757ea64a38078f59fb678 to your computer and use it in GitHub Desktop.
another masterpiece, idiomatic ruby converting one test type to another
def describe(name, &block)
klass = Class.new(Bridge, &block)
Object.const_set(name + "Test", klass)
end
class Bridge < Minitest::Test
def self.before(range, &block)
define_method("before_#{range}") do |*args|
instance_eval(&block)
super *args
end
end
def self.after(range, &block)
define_method("after_#{range}") do |*args|
instance_eval(&block)
super *args
end
end
def self.it(name, &block)
define_method("test_" + name.split(" ").join("_"), &block)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment