Module: ParameterizedTesting::Minitest::Spec::Driver
- Included in:
- Minitest::Spec
- Defined in:
- lib/parameterized_testing/minitest/spec/driver.rb
Overview
The parameterized testing driver for minitest/spec. This module is automatically extended to ParameterizedTesting::Minitest::Spec.
Instance Method Summary collapse
-
#parameterized(*params) ⇒ Object
Entry point of the parameterized testing for minitest/spec.
Instance Method Details
#parameterized(*params) ⇒ Object
Entry point of the parameterized testing for minitest/spec. See github.com/yubrot/ruby_parameterized_testing
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/parameterized_testing/minitest/spec/driver.rb', line 14 def parameterized(*params, &) signature = ::ParameterizedTesting::Signature.new(*params) ::ParameterizedTesting::Input.collect(&).each do |input| # Each input corresponds to a describe: describe(input.label) do # Declare each parameter with a let: signature.params.each do |param| let(param) { __send__(signature.temporary_variable_name).fetch(param) } end # Each parameter refers this temporary variable: let(signature.temporary_variable_name) do signature.map(instance_exec(&input.initializer)) or raise ::ParameterizedTesting::Minitest::Spec::InvalidInputFormatError.new(input:, signature:) end @_parameterized_testing_ctx = true instance_exec(&) end end end |