== Welcome to TestInternals

TestInternals patches Test::Unit::TestCase to allow
testing of private methods, as well as variables. The stack trace
is also available, including the ability to check that specific
parameters were sent to a method. This results in cotton candy goodness for all.

== Getting Started

1. Install TestInternals at the command prompt if you haven't yet:

    gem install test_internals

2. Require the gem in your Gemfile:

    gem 'test_internals', '~> 2.0.0'

3. Require the gem wherever you need to use it:

    require 'test_internals'

== Overriding Default Behavior

To call methods that enable functionality or to override
variable settings, add an initialize method to your test
and call the desired method, calling super after:

 def initialize
   expose_all_variables
   expose_stack
   expose_class_methods
   expose_instance_methods
   @class = MyClass
   init_object(param1, param2, ...)
   # ...
   super
 end

NOTE: If it is not included in this example,
it is not expected to be used in the initialize method.

== Instance Variables

=== @class

The @class variable, will exist for every test.
The class is inferred from the name of the test.
For example, a class named MyClass
is expected to be tested by a class named MyClassTest.

The default behavior may be overridden by specifying the class
in the initialize method of your test as shown above.

=== @obj

This is only non-nil if init_object has been called in the initialize method
(and the class responds to the :new method).
See rdoc for additional details.

== Additional Notes

* Methods marked protected are intended to be used by sub-classes.

* Methods marked private are intended to be used only by the class itself
  and are NOT intended for use in sub-classes.
  If they are, results may be unpredictable.

* When send_to_class or send_to_object are called, the calls are wrapped such
  that output is captured and not sent to the console.
  The output may be retrieved via the following methods:

   out        #=> output to stdout
   err        #=> output to stderr
   real_finis #=> An array [out, err]

== Additional Documentation

 rake rdoc:app

== License

TestInternals is released under the {LGPLv3 license}[link:../../license/lgplv3].

link:../../license/lgplv3.png