Module: Minitest::Data::Test::ClassMethods

Defined in:
lib/minitest/data.rb

Constant Summary collapse

@@data =
{}
@@data_set =
{}

Instance Method Summary collapse

Instance Method Details

#data(*arguments, &block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/minitest/data.rb', line 17

def data(*arguments, &block)
  case arguments.size
  when 0
    raise ArgumentError, "no block is given" unless block_given?
    data_set = block.call
  when 1
    data_set = arguments[0]
  when 2
    data_set = { arguments[0] => arguments[1] }
  else
    message = "wrong number arguments(#{arguments.size} for 1..2)"
    raise ArgumentError, message
  end

  @@data.merge!(data_set)
end

#data_exist?(method_name) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/minitest/data.rb', line 45

def data_exist?(method_name)
  @@data_set.key?(method_name)
end

#data_setObject



41
42
43
# File 'lib/minitest/data.rb', line 41

def data_set
  @@data_set
end

#method_added(name) ⇒ Object



34
35
36
37
38
39
# File 'lib/minitest/data.rb', line 34

def method_added(name)
  unless @@data.empty?
    @@data_set[name] = @@data
    @@data = {}
  end
end

#run_one_method(klass, method_name, reporter) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/minitest/data.rb', line 49

def run_one_method(klass, method_name, reporter)
  if klass.data_exist?(method_name.to_sym)
    reporter.prerecord(klass, method_name)

    data = klass.data_set[method_name.to_sym]
    data.each do |label, value|
      reporter.record Minitest.run_one_method(klass, method_name, label, value)
    end
  else
    super
  end
end