Crosswise Isolation means you can intercept and change the behavior of multiple objects in the system for the full lifetime of the system, and for the full object space of the system.
most isolation(mocking) frameworks, allow ad-hoc like faking of results or behavior. With Crosswise Isolation you can create "aspects" for isolation that are true for anything that passes in their filters.
In the source code for this project, CThru-Silverlight
is one example of using isolation aspects to create crosswise isolation and effectively disable the silverlight runtime from raising it's head in unit tests for silverlight custom controls.
- Skip calls to any constructor of a specific type, even if called by creating a derived class of that type (other ctors will still work)
- For any (past or future) object of type X in the system, make property Y of said object already return a fake value
- Ignore all calls to types in a specific namespace
- skip calls to all methods that have more than 1 parameter in a specific namespace (or any namespace..)
- much more..