Using Class Interfaces and Mock Objects to Unit Test Aspects