A test reacts to everything currently in scope that it does not control. Ideally, that should be only one thing. Everything else in scope must be controlled by the test, or it may react to the wrong thing and give misleading results.
For example, if a production entity uses a service call as part of its implementation, and the service being called is not what the test is testing, then that call must be controlled by the test because it is in scope.
This is a major reason to use a mock object.
This is Scott Bain. Visit us at www.netobjectives.com.