Module: Neo::Rails::Scenarios::TestHelper::ClassMethods
- Defined in:
- lib/neo/rails/scenarios/test_helper.rb
Instance Method Summary collapse
-
#test_scenarios(options = {}) ⇒ Object
Creates test methods for each defined scenario defined in controller.
Instance Method Details
#test_scenarios(options = {}) ⇒ Object
Creates test methods for each defined scenario defined in controller.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/neo/rails/scenarios/test_helper.rb', line 21 def test_scenarios(={}) controller_class = .delete(:controller) || self.controller_class raise "no controller_class defined? Use 'tests MyController'" unless controller_class return unless controller_class.respond_to?(:list_scenarios) scenarios = controller_class.list_scenarios if except = .delete(:except) except = Set.new(Array(except)) scenarios.reject! { |scenario| except.include?(scenario.name) } end return if scenarios.empty? scenarios.each do |scenario| method = scenario.[:method] || :get path = scenario.action scenario_name = scenario.name test "test scenario #{controller_class}##{method} #{path.inspect}, :scenario => #{scenario_name.inspect}" do send(method, path, :id => 1, :scenario => scenario_name) assert_response :success end end end |