123456789_123456789_123456789_123456789_123456789_

Module: Test::Unit::Data::ClassMethods

Relationships & Source Files
Namespace Children
Classes:
Defined in: lib/test/unit/data.rb

Instance Method Summary

Instance Method Details

#data(label, data) #data(data_set) #data(&block)

This method provides Data-Driven-Test functionality.

Define test data in the test code.

[ GitHub ]

  
# File 'lib/test/unit/data.rb', line 55

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

#load_data(file_name)

This method provides Data-Driven-Test functionality.

Load test data from the file. This is shorthand to load test data from file. If you want to load complex file, you can use #data with block.

Examples:

Load data from CSV file

load_data("/path/to/test-data.csv")
def test_empty?(data)
  assert_equal(data["expected"], data["target"].empty?)
end

Parameters:

  • file_name (String)

    full path to test data file. File format is automatically detected from filename extension.

Raises:

  • (ArgumentError)

    if file_name is not supported file format.

See Also:

[ GitHub ]

  
# File 'lib/test/unit/data.rb', line 90

def load_data(file_name)
  loader = Loader.new(self)
  loader.load(file_name)
end