module Test::Unit::Data::ClassMethods
Public Instance Methods
data(*arguments, &block)
click to toggle source
This method provides Data-Driven-Test functionality.
Define test data in the test code.
@overload data(label, data)
@param [String] label specify test case name.
@param data specify test data.
@example data(label, data)
data("empty string", [true, ""])
data("plain string", [false, "hello"])
def test_empty?(data)
expected, target = data
assert_equal(expected, target.empty?)
end
@overload data(data_set)
@param [Hash] data_set specify test data as a Hash that
key is test label and value is test data.
@example data(data_set)
data("empty string" => [true, ""],
"plain string" => [false, "hello"])
def test_empty?(data)
expected, target = data
assert_equal(expected, target.empty?)
end
@overload data(&block)
@yieldreturn [Hash] return test data set as a Hash that
key is test label and value is test data.
@example data(&block)
data do
data_set = {}
data_set["empty string"] = [true, ""]
data_set["plain string"] = [false, "hello"]
data_set
end
def test_empty?(data)
expected, target = data
assert_equal(expected, target.empty?)
end
# 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)
click to toggle source
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.
@param [String] file_name full path to test data file.
File format is automatically detected from filename extension.
@raise [ArgumentError] if file_name is not supported file
format. @see Test::Unit::Data::ClassMethods::Loader#load
@example Load data from CSV file
load_data("/path/to/test-data.csv") def test_empty?(data) assert_equal(data["expected"], data["target"].empty?) end
# File lib/test/unit/data.rb, line 90 def load_data(file_name) loader = Loader.new(self) loader.load(file_name) end