Skip to content

Instantly share code, notes, and snippets.

@bhb
Last active November 22, 2023 23:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhb/7728303 to your computer and use it in GitHub Desktop.
Save bhb/7728303 to your computer and use it in GitHub Desktop.
Default test helper to make Test::Unit or Minitest more pleasant.
require 'test/unit'
# or
# require "minitest"
# require "minitest/autorun"
class Test::Unit::TestCase
# or, for Minitest, do:
# class Minitest::Test
def self.testing(name)
@group = name
yield
@group = nil
end
def self.test(name, &block)
name.extend(Squish)
test_name = @group ? "test_: for '#{@group}': #{name.squish}".to_sym : "test_: #{name.squish}".to_sym
defined = instance_method(test_name) rescue false
raise "#{test_name} is already defined in #{self}" if defined
define_method(test_name, &block)
end
end
module Squish
def squish
dup.extend(Squish).squish!
end
# Performs a destructive squish. See String#squish.
def squish!
strip!
gsub!(/\s+/, ' ')
self
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment