module Minitest::Spec::DSL

def let name, &block

def let name, &block
  raise ArgumentError, 'name cannot begin with "test"' if name.to_s =~ /\Atest/
  define_method name do
    @_memoized ||= {}
    @_memoized.fetch(name) { |k| @_memoized[k] = instance_eval(&block) }
  end
end