Sha256: 99f6af7e013b79278338b2f6722bc7febe7c9e8826dfcde516a0cff28a344bdc
Contents?: true
Size: 1.58 KB
Versions: 21
Compression:
Stored size: 1.58 KB
Contents
require 'active_support/concern' module Neo module Rails module Scenarios # Useful test helpers for minitest (test/unit). # # == Usage # # require 'neo/rails/scenarios/test_helper' # # class ActionController::TestCase # include Neo::Rails::Scenarios::TestHelper # end # module TestHelper extend ActiveSupport::Concern module ClassMethods # Creates test methods for each defined scenario defined in controller. def test_scenarios(options={}) controller_class = options.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 = options.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.options[: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 end end end end end
Version data entries
21 entries across 21 versions & 1 rubygems