# File lib/action_controller/assertions/response_assertions.rb, line 99
      def assert_template(options = {}, message = nil)
        clean_backtrace do
          case options
           when NilClass, String, Symbol
            rendered = @response.rendered[:template].to_s
            msg = build_message(message,
                    "expecting <?> but rendering with <?>",
                    options, rendered)
            assert_block(msg) do
              if options.nil?
                @response.rendered[:template].blank?
              else
                rendered.to_s.match(options.to_s)
              end
            end
          when Hash
            if expected_partial = options[:partial]
              partials = @response.rendered[:partials]
              if expected_count = options[:count]
                found = partials.detect { |p, _| p.to_s.match(expected_partial) }
                actual_count = found.nil? ? 0 : found.second
                msg = build_message(message,
                        "expecting ? to be rendered ? time(s) but rendered ? time(s)",
                         expected_partial, expected_count, actual_count)
                assert(actual_count == expected_count.to_i, msg)
              else
                msg = build_message(message,
                        "expecting partial <?> but action rendered <?>",
                        options[:partial], partials.keys)
                assert(partials.keys.any? { |p| p.to_s.match(expected_partial) }, msg)
              end
            else
              assert @response.rendered[:partials].empty?,
                "Expected no partials to be rendered"
            end
          else
            raise ArgumentError  
          end
        end
      end