Module: ParameterizedTesting::RSpec::Driver
- Included in:
- RSpec::Core::ExampleGroup
- Defined in:
- lib/parameterized_testing/rspec/driver.rb
Overview
The parameterized testing driver for RSpec. This module is automatically extended to RSpec::Core::ExampleGroup.
Instance Method Summary collapse
-
#parameterized(*params) ⇒ Object
Entry point of the parameterized testing for RSpec.
Instance Method Details
#parameterized(*params) ⇒ Object
Entry point of the parameterized testing for RSpec. See github.com/yubrot/ruby_parameterized_testing
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/parameterized_testing/rspec/driver.rb', line 11 def parameterized(*params, &) signature = ::ParameterizedTesting::Signature.new(*params) ::ParameterizedTesting::Input.collect(&).each do |input| # Each input corresponds to a context: context(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::RSpec::InvalidInputFormatError.new(input:, signature:) end @_parameterized_testing_ctx = true instance_exec(&) end end end |