Issue 25: Add ability to extend Assertions dynamically at runtime
Status:  Fixed
Owner:
Closed:  Dec 2007
Project Member Reported by virtix, Nov 6, 2007
This feature will allow developers to configure which assertion packages 
are automatically loaded at runtime. In addition, it will allow developers 
to define custom assertions and add those either during setUp() or at test 
case runtime.

Another bonus is that we can now add in CFUnit and CFCUnit assertions 
easily.
 
Nov 6, 2007
Project Member #1 virtix
Spent a little too much time on this one but finally skinned the cat. Bonus was also 
seeing some flaws in the framework and redundant calls to TestCase() constructor. 
Also, saw how CF scopes functions - In CFCs and direct subclasses, cffunctions are 
automatically scoped in THIS _and_ VARIABLES, however, when trying to implement a 
Decorator pattern, passing CFCs around, it appears that CF scopes the new functions 
ONLY in the THIS scope. So, if adding new behaviors to Assert, the developer would 
then have to call THIS.myNewAssert() as opposed to just myNewAssert(). The 
workaround, is to loop through the meta data and scope the new functions to 
VARIBALES.

Also, created an mxunit-config.xml file to list assertion packages (and any other 
runtime config info) that can optionally be loaded.

To Do: 
  * Look at I/O overhead and consider caching.
  * Test and discuss behaviors of methods with same names. That is, if assertEquals
() exists in multiple CFCs, how should the framework behave? Ignore, exception, use 
default?


Dec 14, 2007
Project Member #2 virtix
Just closing this out. It works well but there is probably a better implementation.
For the developer this works well.
Status: Fixed
Cc: -marc.esher -v.rajkumar -AnodynePres