Sha256: 2d83be29ed09a8bff699adbfa699110c74933e55bfcf715251228a4fc1b09782
Contents?: true
Size: 1.42 KB
Versions: 107
Compression:
Stored size: 1.42 KB
Contents
require "active_support/concern" require "active_support/inflector" module ActiveSupport module Testing # Resolves a constant from a minitest spec name. # # Given the following spec-style test: # # describe WidgetsController, :index do # describe "authenticated user" do # describe "returns widgets" do # it "has a controller that exists" do # assert_kind_of WidgetsController, @controller # end # end # end # end # # The test will have the following name: # # "WidgetsController::index::authenticated user::returns widgets" # # The constant WidgetsController can be resolved from the name. # The following code will resolve the constant: # # controller = determine_constant_from_test_name(name) do |constant| # Class === constant && constant < ::ActionController::Metal # end module ConstantLookup extend ::ActiveSupport::Concern module ClassMethods # :nodoc: def determine_constant_from_test_name(test_name) names = test_name.split "::" while names.size > 0 do names.last.sub!(/Test$/, "") begin constant = names.join("::").safe_constantize break(constant) if yield(constant) ensure names.pop end end end end end end end
Version data entries
107 entries across 102 versions & 15 rubygems